monadic parser

a more principled (but much longer) parser for Cabal files.
remove unused parser methods
the stack thickens

the parser is now using a more complicated monad transformer, which
allows the actual parsing code to be simplified. Still not shorted than
the original mess, but much more readable!
the new parser supports empty lines

previously this would have caused the argument block to be interrupted
early.