Polish UTF-8 bytestring builder support

- adjust function names to 'encodeUtf8Builder' and 'encodeUtf8BuilderEscaped'
- expose the same conversion to builders for both lazy and strict text
- ensure 'Escaped' versions are inlined to allow specialization for specific
  escaping primitives
- fix some Haddock references
- add Haddock comment about bytestring >= 0.10.4.0 dependency
- remove stream-to-builder encoding functions. There is no direct use case for
  them and they require too much knowledge about the internals to be used
  correctly.
Add back 'ensure 1' to avoid overflowing an output buffer

The counter-example for the existing code is a string of length '2*n' that
starts with 'n' characters with codepoints in the range (0x7F, 0x7FF) and ends
with 'n' ASCII characters. All 'n' ASCII characters will be written after the
end of the output buffer.
Merge pull request #63 from meiersi/polish-text-bytestring-builder-integration

Polish UTF-8 bytestring builder support
Add new encoding benchmarks

These require at least the following version of the text-test-data, dated January 6:

git: 2183e3e5423fbf0d9d0187a4455df699c5e04b74
hg:  6c0e2b527bbbc6e18c622e452d16634b5d953b34
Duplicate encodeUtf8 as encodeUtf8_1 temporarily
encodeUtf8_1: hoist poke8 up a level
encodeUtf8_1: refactor go to accept a pointer parameter
encodeUtf8_1: hoist ensure up a level
encodeUtf8_1: massively rework internals

The goal here is to avoid a buffer size check on every iteration,
instead only doing one the first time we encounter some input that's
larger than the buffer we preallocated.

This helps performance rather a lot: we don't regress on the smallest
inputs, but we are up to 35% faster than the previous version of
encodeUtf8 on larger inputs.
encodeUtf8_1: refactor loop body
encodeUtf8_1: refactor another loop body
encodeUtf8_1: refactor the last loop body

This requires a bit more torturing to maintain performance.

For some unknown reason, doing the same refactoring on go4 decreases
performance on russian-small.txt by half!
encodeUtf8_1: a little cosmetic work
encodeUtf8_1: make available with both bytestring versions

--HG--
extra : amend_source : badbc206c5b2b8b827be0e42811becfa35b0c000
Drop unused import
encodeUtf8_1: drop a loop induction variable

This helps performance quite a bit! Now encoding Japanese text is
2x faster than encodeUtf8, as opposed to 30% faster before. Not bad!
encodeUtf8_1: drop an unnecessary type signature

The value that was having too general a type inferred is now a
pointer, so inference doesn't accidentally overgeneralize.
Drop now-redundant imports
Export both encodeUtf8 variants
encodeUtf8_1: get my arithmetic right :-(