Recent developments in edge-selective functionalization of surface of graphite and derivatives – a review