[rt.cpan.org #93892] downgrade breaks unwritable strings

Arguably we should not downgrade the original string. This also removes
code duplication by moving this logic into srl_begin_decoding() right
before we copy the the string buffer into our private struct.

I wonder if we should warn when this happens. This change means that in
the case of a large buffer holding many sereal packets which is in utf8
will be decoded for each buffer. I guess people "should just not do that"
but I wonder if we should warn if we do...