Return error in overloaded reqid

This is the same trick that overload uses to return an error code to the
put FSM. Because the FSM expects this from overload, a non-overload
error ends up returning the request id as the error reason, which sucks.
With this change, a local put will return a too large or too many
siblings error to the client.
Local puts will likely fail in this scenario. Now, it's possible for the
local put to succeed and remotes to fail (due to different thresholds or
divergent values with different number of siblings). In that case the
error reason might talk about failure to satisfy pw or related.  We
currently don't have a system for prioritizing different vnode error
responses. Except for overload, which eagerly returns overload if any
vnode returned an overload code.