Iran has been gripped by widespread unrest after protests erupted in Tehran on December 28 and quickly spread to several other cities.