refactor pool to use worker thread for reaper, moving timout code inside of pop, and refactor volatile _add to return client when necessary