Matcher specific candidate highlighting

This PR adds an (optional) custom `pattern` function to matchers, which returns a regex that is used to highlight the candidates. This replaces the current behaviour, which highlights the candidates as if the input/matcher was a glob.

Also, another commit fixes a couple of issues with the glob/fuzzy->regex conversion, in particular dealing with literal dots in fuzzy searches, multiple asterisks in globs, and making globs work in fuzzy searches work in lua as well as in vimscript. Ive included it in this PR because some of the regexes are reused in the highlighting.