David Cameron condemns Iran's 'failed' attack as he urges Israel not to retaliate