Add syntax checker for Haskell .cabal files

The syntax checker uses the `cabal check` command to check Haskell Cabal package descriptions for syntax errors and other potential problems. Currently, the `cabal check` command does not take a file argument, so the current working directory must be changed to that of the package description's before `cabal` can be executed. Additionally, `cabal check` only issues line numbers for parse errors,
so warnings are arbitrarily assigned to line 1.