Provide a latency-aware hostconnpool implementation

Some refactoring necessary along the way
Push returned resources to the head of the pool entries queue

This is to give idle resources a chance to be closed, and actually reduce
resource consumption.
Move Host type alias to util
Replace (Long, TimeUnit) by Duration data type
Add some notes