Fixes #231
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
Update html tests
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.