Add ByteString version of Attoparsec
One pass parser and tests.

We remove the HTML test as it is no longer necessary. We cover the
test case in spec tests and other HTML tests but keeping this around
fails: this is because the new parser has different semantics there.
In fact, I suspect the original behaviour was a bug that wasn't
caught/fixed but simply included as-is during the testing.
Rename Haddock.ParseSpec to Haddock.ParserSpec
Move UTF-8 encoding/decoding to separate file
Make sure that parsing always ends at endOfInput
Failing tests for totality
Fix spec
Simplify stringBlock
Do not append \n to input of parseString
Don't refer to any external types.

This prevents breakage in case we bump up an interface file version at
which point we can not even rely on having the documentation of base.
Enable extensions per-module and not globally.
Update Test.html whitespace + safety
Fix up test whitespace and safety
Strip links fully and reformat the doc.

This ensures that we don't fail tests after changing interface versions
due to missing documentation on developer's system.
Temporarily hide cross package testing

We need to hide this for now as it will fail every time we change the
interface version. A solution would be to bundle a package with Haddock
test suite and install + generate docs for it every time we run tests
and then remove it straight afterwards. I'm hiding this until I think of
a semi-clean way to do this.
Remove redundant default (Int)
Do not filter primes and backticks in test for totality
Move tests for emphasised text under parseString

(it's a string level markup construct after all)
Add more specs for emphasized text
Make parseString total

(the major catch here was that it still failed for the empty string)