Formatting: rename cursor#LineText to cursor#TextLine
Formatting: move text before cursor function.
Formatting: move KeywordPattern to cabal/syntax.
Formatting: rename s:PatternPosition to fn#pattern#MatchLast
Split generic omnicompletion code into separate file
Move s:InsideComment to cabal#syntax.
Test for indent features befores setting options
Replace syntax/cabal.vim with bare function call.
Replace indent/cabal.vim with bare function call.
Extract bracket function for indenters and highlighters.
Move cabal#syntax utility functions into fn#syntax.
Add syntax#fn#Cluster function
Remove meaningless containedin option

It doesn't seem to work for clusters and was replaced with a
`syntax cluster` directive anyway.
Remove YHC from valid compilers and rename NHC98
Remove bogus 'endif' keyword
Add highlighting for 'default-language' field
Correctly validate module names
Clean up s:DefineConstants and rename it DefinePatterns
Correctly validate 'tested-with' field
Add lists of conditionals and language extensions

These are currently unused but should be highlighted in the future.