Allow caller-specific error text in binary protocol

Right now this is just used for out-of-memory errors, but may be used
for any error response where there's value in replying with something
other than a generic description of the error code.