Removed MongoOptions from clirr-exclude.yml since we're keeping it.
Added back constructor to CommandFailureException that was removed in error.
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.
JAVA-805: Implemented connection events in the internal connection,  In order to send the event properly, needed a few extras like the cluster id and the request id of the sent message.
JAVA-805: Created JMX connection pool listener and removed explicit JMX support from PooledConnectionProvider
JAVA-805: Removed Cluster change listener support, as it's superseded by ClusterListener.
JAVA-805: Variable name changes, inlined variables, and formatting
JAVA-805: Ensure than the pool sends no more events after it's been closed.
Removed unnecessary final modifiers from interface method parameter
Cleaned up database dropping and mongo client closing by moving it all into fixtures
Cleaned up database handling in tests so that stray databases are not left around