Graphene-based photonic nanostructures for linear and nonlinear devices