/// Trait implemented by all the messages defined in proto files.
/// Provides rudimentary support for message descriptor, mostly as a way to get
/// the type name for a given message rather than trying to implement the full
/// reflection API. For more info, see:
/// <https://developers.google.com/protocol-buffers/docs/techniques>
/// <https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/descriptor.proto>