Support error codes

Previously we would return `0` for all error codes in `RpbErrorResp`. This changes the return types of `process` and `process_stream` to allow a service to specify the error code to be sent to the client. 

Existing services are unaffected and will still send `0`.