Explosions shook Tehran on Saturday after Israel said it carried out a “preventive” military strike, raising fears of a wider regional conflict.