When the new proto.Message interface lands in a stable upstream release (golang/protobuf#364), we can use it for reflective operations instead of making assumptions about the generated struct layout. This is a hard requirement for a stable ProtoRegistry interface.