Fix thread and connection leaking

Hey,

Ran into this recently, don't really have any thoughts on what might be a decent way to test for this behavior.

My test was essentially doing this -
```ruby
settings = {
  :master_name => redis_settings["master_name"],
  :sentinels => redis_settings["sentinels"]
}

puts "Starting up on #{$$}"

1000.times do
  r = Redis.new(settings)
  r.info
  r.quit
end

puts "Done"

gets
```

And what happens without this patch is that at the end of the run your'e stuck with 1000 extra connections and threads ( that is, if you don't run out of FDs first ).

Let me know if you have any thoughts on what a test for this would look like or if you think this is good to merge as-is.

Thanks.