Refactor how keyspaces metadata is retrieved and stored

- Add 2 tests on keyspaces metadata
Moved table metadata retrieval to KeyspaceMetadata
Moved Udt metadata retrieval to KeyspaceMetadata
Use internal cache for table metadata at keyspace level
Merge branch 'metadata' into 2.1
Create UpdateLocalInfo() and UpdatePeersInfo() ControlConnection methods
Make ControlConnection testable
Add ControlConnection unit tests on peers and local info
Token map per keyspace
Build tokens for NetworkTopology strategy
TokenMap NetworkTopology tests
Add keyspace parameter to NewQueryPlan()
TokenAwarePolicy round robin through local replicas CSHARP-202
Lazy initialization of the Cluster CSHARP-204
Cluster: connected sessions to ConcurrentBag
Moved Cluster unit tests out of integration test project
Add unit tests for Cluster Dispose after init error and host name resolving
Update token map when a keyspace is added / updated
Try to reconnect once when retrieving Metadata
ICluster exposes HostAdded and HostDown event