Cecilia Sala, an Italian journalist detained in Iran, has been freed and returned home after three weeks, marking a diplomatic success for Italy.