RPC: Use RPC methods instead of the "ClientConnectionTarget" trait.
(This is built on top of !2190 (merged) ; only the two latest commits in the branch are actually relevant here.)
This branch removes the ClientConnectionTarget trait that formerly served as the interface between socks.rs and the RPC code, and instead uses rpc::invoke_special_method
, and a set of methods declared on the relevant RPC objects.
On its own, this might not seem like a huge improvement, but it will later let us implement these RPC methods for types that can't reasonably implement ClientConnectionTarget.
It also serves as a proof of concept that special-method invocation can actually work, so that we can build things like this in cases where introducing a trait isn't practical.
Closes #1427 (closed)