Nanoscale strain engineering of graphene and graphene-based devices