Tories suffer heavy losses in London as Boris Johnson faces grassroots backlash