Fix #Ref() & #Unref() usage

There were scenarios under heavy memory pressure where the connection would be connected in the midst of doing work because the #Ref() was released after each query. This changes the behavior to hold a #Ref() to the object -- and prevent garbage collection -- for as long as there is an open connection to the backend. This prevents a bunch of weird, tricky race-conditions, cleans up the code, and brings it in-line with how other sockets behave. It properly blocks the event-loop
until it's cleaned up.
Add ref tracking
Remove unused code
Merge pull request #7 from brianc/fix-ref-race

Fix #Ref() & #Unref() usage