Better highlighting of keywords

Though it's still regexps. This should really be in Haskell instead of Emacs regexps!