A 60-day truce has been agreed by Israel and Hezbollah to end more than a year of hostilities in Lebanon and northern Israel.