Fix memory leaking. HostConnectionPool intances are being retained forever
Make HostConnectionPool IDisposable

- Unsubscribe to Host.Down event when disposing
- Invoke Connection.Dispose() from the pool
Merge branch '2.1'