Boris Johnson faces stinging attack over ‘derogatory, racist and Islamophobic’ remarks, prompting rare applause in parliament