Tuning optical and electronic properties of graphene oxide by surface adsorption of molecular halogens (X2 = I2, Br2, Cl2, and F2) for light harvesting