Add 'Close' function to properly release all resources for a host pool.

This is necessary for usage of the lib with multiple dynamically created hostpools. Currently there is no easy way to release resources taken in each hostpool because of the ticker go routine.
`return` doesn't stop the timer (which has it's own goroutine). We need to switch from `time.Tick` to `time.Ticker` which is closable and call the Close() appropriately.

This second block should also be written so that `<- ticker` is a `case` statement not the `default`. (As written if in the default handling the goroutine is blocked on ticker, and won't notice new data on `p.quit` till the next loop. We want that to happen immediately.