Polypyrrole: a conducting polymer; its synthesis, properties and applications