Added cluster event publishing framework, which includes events for:
1. cluster opened
2. cluster closed
3. cluster description changed
4. connection opened
5. connection closed
6. connection message sent
7. connection message received
8. connection added to pool
9. connection removed from pool
10. connection checked out of pool
11. connection checked in to pool
12. connection pool wait queue entered
13. connection pool wait queue exited
14. connection pool opened
15. connection pool closed

Currently all events are published except 4-7.