define encoding for message metadata to be UTF8

Clarifies that these are text fields, and removes ambiguity about how to create proper text object from stored bytes.

If message metadata should be allowed to be arbitrary non-null binary data, then obviously this PR shouldn't be merged.