Removes reaper thread and adds newConnection timeout

Removes the reaper, in favor of hijacking the requesting thread to check for reaped references.
Adding a timer, with default of 0, so that newConnection returns null if it is unable to acquire a connection in a timely fashion.
Implements AutoCloseable and removes unnecessary child class