Boris Johnson suffers blow as Labour take narrow poll lead amid Tory sleaze row