Boris Johnson wins no-confidence vote but suffers large Tory rebellion