completion: start on fuzzy matching. still very slow.

Warning that this is not fast yet. It still needs lost of optimization
since we don't have a lot of help at avoiding looking at a majority of
the strings.

I think by doing the completion async and with a few timeouts we can
bandaid over most of it though.