Fail early when empty pattern is provided to select_vars

The current default behaviour of select_vars, with sub
functions `starts_with`, `ends_with`, `contains` and
`matches`, when provided with a character pattern of
length zero, is to return all columns of the tbl. This commit
changes that default behaviour: now these functions fail
early, selecting nothing and telling the user that
an empty pattern was provided.