improve error reporting

Note original file and line number of invalid code blocks.
remove outdated comment [ci skip]
minor whitespace cleanup
depend on newer version of haskell-src-exts to get relevant bug fixes
Stop relying on haskell-src-exts for pretty-printing.

As detailed in the comments on #3, after extracting code blocks and
URLs with HSE, we now re-parse the file simply looking for diagram
URLs, compile them, and exact-print the file back out if anything
changed.  This gives us a much simpler and more reliable way to
guarantee that we don't change anything other than what we're supposed
to change.

Closes #1.
Closes #3.
don't print an extra newline when there are no error messages
Implement processing of Cabal packages.
Merged.