Graphitic carbon nitride (g-C3N4) electrodes for energy conversion and storage: a review on photoelectrochemical water splitting, solar cells and supercapacitors