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.
I agree with your suggestions and came up with something like the following:

        ticker := time.NewTicker(durationPerBucket)
        for {
                select {
		case <-p.quit:
                        ticker.Stop()
                        return
                case <-ticker.C:
                        p.performEpsilonGreedyDecay()
                }
        }

  However, this actually not cleaning anything up and I observed the same memory leak like before, when using multiple host pools. Still trying to figure out why. Any clue?