Harnessing Defects in Graphene: from Plasmonics to Chemical Functionalization