Package codes defines the canonical error codes used by OpenTelemetry.
It conforms to [the OpenTelemetry specification](https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/api.md#statuscanonicalcode).
Code is an 32-bit representation of a status state.
MarshalJSON returns c as the JSON encoding of c.
String returns the Code as a string.
UnmarshalJSON unmarshals b into the Code.
This is based on the functionality in the gRPC codes package: https://github.com/grpc/grpc-go/blob/bb64fee312b46ebee26be43364a7a966033521b1/codes/codes.go#L218-L244