Added way to register events
Added event response type
Merge remote-tracking branch 'origin/CPP-145' into CPP-146
Added ability to register for events
Merge branch 'beta4' into CPP-146

Conflicts:
	src/connection.cpp
	src/control_connection.cpp
	src/host.hpp
	src/io_worker.cpp
	src/pool.cpp
	src/request_handler.hpp
	src/session.cpp
Fixes after merge
Handle topology/status changes
Added reconnect logic to session
Node refresh list causes 'on add' event
Added protocol version handling
Fixed issue with not reconnecting because of invalid protcol or bad auth
Prevent double erasure of host during Session::purge_hosts
Fix typos around event response and REMOVED_NODE
Prevent refresh node info when control connection not connected
Merge branch 'CPP-146' into beta4

Conflicts:
	src/connection.cpp
	src/connection.hpp
	src/control_connection.cpp