Graphene for Energy Production and Storage Applications