Boris Johnson survives no-confidence vote