Semantics change: check-cast introduces a new SSA value

While the instruction never actually writes a register, it adds type
information that we can track more easily if a new value is introduced.
This change renumbered the outputs on a few tests (updated).
Remove uses of ByteString.unpack

Using unpack wasn't really accurate and might have been lossy or unsafe.
For now, just store bytestrings until we write a real MUTF8 decoder.
There is a stub MUTF8 decoder that uses Data.Text.Encode as a
best-effort decoder.  We also only decode for pretty printing.