Setup `Client` for building live and test clients

This sets up the `Client` to eventually provide a live and test
client. `Client` is now a module that will eventually look at the
test mode and decide to either build a live or test client. For
now it always builds a live client, keeping it consistent with how
it previously worked.

This also moves the call runner logic to it's own file and changes
it from an open struct to a custom class. This is also setup for
more logic being added to the client file (for the test client) and
to avoid the file become hard to work in.

Finally, this removes the fake connection that was manually built
in AndSon and switches to using the Sanford-Protocol fake
connection in the call runner tests. This is to help with future
maintenance and not having to keep a separate fake connection
compatible with any changes made to the protocol.
Merge pull request #32 from redding/jcr-split-call-runner

Setup `Client` for building live and test clients
Add `TestClient`, return default response if one isn't configured

This adds a `TestClient` that is now returned when `Client.new`
is called in test mode. The `TestClient` has the same interface
as a regular client, but never will make an actual TCP request.
It uses the stored responses logic to allow configuring responses.
This allows the `AndSonClient` to not need stored responses and
removes the check for test mode in the `CallRunner.call` method.
This also changes the stored responses to always return a response,
even if one isn't configured. This allows the `TestClient` to
always provide response data. Tests that don't care what the
response is, can now just use the default response. This is also
setup for adding more test features to `TestClient` and stored
responses for better usability.