streamDecodeUtf8With: accumulate undecoded chunks correctly

We had previously gotten the accounting and reporting wrong if an
incomplete input was fed in over the course of several continuations,
such that we'd report only the incomplete input seen by the most
recent continuation.

This fixes gh-70.
Correct the documentation for streaming decoding
Refactor genUnicode to be more flexible
QuickCheckUtils: drop support for GHC < 7
Tests: remove some gratuitous use of CPP
Tests: generalise feedChunksOf and hoist to top level
Tests: streamDecodeUtf8 should report undecoded bits correctly

This tests the fix for gh-70.

--HG--
extra : amend_source : e3b1f68c49e88c984c17716183a91b8dcf19be23
Tests: sort imports