Graphene based metal and metal oxide nanocomposites: synthesis, properties and their applications