Use frak to reduce backtracking

Hey buddy. Remember when I said

> Part of me feels like going the extra mile and optimizing the generated expressions to limit the amount of backtracking - which is going to be through the roof for `clojureRegexpUnicodeCharClass`.

in #19?

Well guess what? :smile: 

Those crazy expressions haunted me up until last weekend when I finally decided to come up with a solution ([frak](https://github.com/noprompt/frak)). If you look at the diff you'll notice those gigantic expressions are significantly smaller. Two are a tad larger but that's because they're fully expanded (ie. `[abc] -> %(a|b|c)`).

I know this sounds (and looks) crazy, but these expressions should definitely be more performant. All of the tests pass and, from what I can tell, everything seems to highlight fine. 

See, I still care about Vim (I'm not completely evil). :wink: