Prepare modules for parser split.

We have to generalise the Doc (now DocH) slightly to remove the
dependency on GHC-supplied type.
Move parser + parser tests out to own package.

We move some types out that are necessary as well and then
re-export and specialise them in the core Haddock.

Reason for moving out spec tests is that if we're working on the parser,
we can simply work on that and we can ignore the rest of Haddock. The
downside is that it's a little inconvenient if at the end of the day we
want to see that everything passes.
Move out Show and Eq instances to Types

They are much more useful to the users here.
Remove no longer necessary parser error handling.

We can now drop some Maybe tests and even lets us strip an error
handling monad away in a few places.
Please the GHC build-system.

As I can not figure out how to do this properly, if we're in GHC tree,
we treat the library as being the same package. If we're not in the
tree, we require that the library be installed separately.