Better API to catch remote exceptions

- Rename ErrorReply to RemoteError.
- Add __str__, __repr__ to RPCError for better message display.
- Allow catching remote exception by using RemoteError.<remote error class name>.
should be `errtype_name` maybe