Add a disconnect method to JSONRPCClientFactory

Building on the last pull request, add a method to disconnect from the peer and cancel all outstanding requests, or cancel the initial connection.