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.