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