Better error reporting
Currently we use only the gRPC status codes to indicate errors. The only exception is post limit checking, where we use the custom enum ErrorMessageCode. However, the need to report more granular error types comes up more and more often. The suggested solution is to migrate to using https://cloud.google.com/apis/design/errors