Add spec tests.

This adds tests for all elements we can create during regular
parsing. This also adds tests for text with unicode in it.
Use Hspec instead of nanospec

This is motivated by the fact that Haddock tests are not ran by the
GHC's ‘validate’ script so we're pretty liberal on dependencies in that
area. Full Hspec gives us some nice features such as Quickcheck integration.