Throw an error if we cannot generate a UTF8 version of a string.
Throw an error if we cannot generate a UTF8 version of a string.

`String.data(using: String.encoding.utf8)` should never fail,
since any Unicode string can always be represented in UTF8.

But some Swift development snapshots fail to convert empty
strings, so we throw `truncated` if the conversion fails.

cburrows/swift-protobuf,thomasvl/swift-protobuf,allevato/swift-protobuf,apple/swift-protobuf,tbkka/swift-protobuf,cburrows/swift-protobuf,tbkka/swift-protobuf,tbkka/swift-protobuf,thomasvl/swift-protobuf,thomasvl/swift-protobuf,allevato/swift-protobuf,cburrows/swift-protobuf,allevato/swift-protobuf,cburrows/swift-protobuf,apple/swift-protobuf,cburrows/swift-protobuf,thomasvl/swift-protobuf,tbkka/swift-protobuf,apple/swift-protobuf,tbkka/swift-protobuf,allevato/swift-protobuf,allevato/swift-protobuf,allevato/swift-protobuf,thomasvl/swift-protobuf,tbkka/swift-protobuf,cburrows/swift-protobuf,tbkka/swift-protobuf,thomasvl/swift-protobuf,cburrows/swift-protobuf,apple/swift-protobuf,apple/swift-protobuf,apple/swift-protobuf,allevato/swift-protobuf,apple/swift-protobuf,thomasvl/swift-protobuf