Endpoint-ify the txjason client

Right now, the txjason client requires a host and a port. It's much more convenient to be able to take an endpoint, which then knows how to connect itself to whatever.

This branch updates the txjason client to be able to connect with endpoints and adds a bunch more tests.