Add a `ConnectionSpy`

This adds a `ConnectionSpy` that can be used to replace a real
connection in tests. This allows avoiding hitting redis in a
test suite and also to inspect what calls were made and with what
args. The spy responds to the same methods as redis and will
track any calls made to those. Finally, the spy can also be used
as a base to add extended behavior for specific redis commands.

This also updates the `Connection::Config` to default its size to
1. `ConnectionPool` will error if size is `nil`. This also adds
tests for `Config` to test that it properly defaults it.

This also switches from `Redis.connect` to `Redis.new` because the
connect method has been deprecated in favor of using `new`.

@kellyredding - Ready for review.
@jcredding I'd update this to append to a `with_calls` array and expose that array as a reader.  I'd probably make a `WithCall` struct and rename the `Call` struct to `RedisCall` for clarity sake.