encodeUtf8_2: cap the number of wasted bytes at 2x

This has the odd side effect of improving tiny-string performance
from 20% slower then encodeUtf8_1 to about 5% faster. Never stop
being weird, GHC optimizer!
encodeUtf8_2: fix an off-by-one-bit error (!)