Tin oxide for optoelectronic, photovoltaic and energy storage devices: a review