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.