rpc: Simplify handling of fatal Json read errors.
Previously, after determining that an error on an RPC connection was fatal, we would:
- Determine whether it was a "clean" close or one that needed to be logged.
- In exactly one case (specifically, when the inbound Json stream contained a Value that was not an Object) , we would send back a message to the client.
- Exit the connection with Ok() or Err(e).
We no longer do step "2" above.
Additionally, we document:
- Why it's important to exit immediately on syntax errors.
- A better way to tolerate non-Object Json Values, if we decide someday to do so.
Closes #1591 (closed).