Convert a representative set of daemon gRPC error returns to carry a typed
ErrorInfo in the status-details trailer via the nuncio-proto errors helper:
account/message/event/contact/rule not-found (with the offending id as
metadata), NSQL validation failures, and the calendar not-configured
precondition. Canonical status codes are unchanged, so existing error-path
assertions still hold. Add an offline over-the-wire E2E test that decodes the
reason and metadata from a returned Status against the real daemon server.
Refs #273
Introduce a frozen, machine-readable error taxonomy for the nuncio.v1
contract: an ErrorReason enum and an ErrorInfo message carrying a reason,
optional metadata, and a human message. A nuncio-proto errors helper builds
a tonic::Status that encodes ErrorInfo into the grpc-status-details-bin
trailer with the canonical gRPC code per reason, and decodes the reason back
on the client side. Regenerate the committed descriptor golden.
Refs #273