Synthesis And Applications Of Graphene Nanoribbons And Heterostructures From Molecular Precursors