context: reintroduce `ctx.descendant` as deprecated
Reintroduce `ctx.descendant` to help extensions authors update their
extensions in order to use the new API.
obsolete: explode if metadata contains invalid UTF-8 sequence (API)
The current metadata API can be a source of bugs since it forces callers to
process encoding conversion by themselves. So let's make it reject bad data
as a last ditch. I assume there's no metadata field which is supposed to store
arbitrary BLOB like transplant_source.