Feeling a bit scared of `#byteslice`; it's in 1.9.3 but not 1.9.2 (compare http://rdoc.info/stdlib/core/1.9.2/String and  http://rdoc.info/stdlib/core/1.9.3/String ), while 1.9.2 still supports all the unicode/encoding stuff that 1.9.3, 2.0, and 2.1 support.

That said, I don't have a problem with pulling 1.8 and < 1.9.3 support (hell yeah fewer codepaths). It'll make making this piece of code correct easier.