Polyaniline: Doping, structure and derivatives