Add periodic node discovery with optional filters

Add support for periodic node discovery via system.peers.

This lays the foundation for more feature full connection pools, such as token aware host selection.
Unless the seed nodes have incorrect values which then would never be able to connect to the cluster and the pool would always be empty. I think the createSession should fail fast if no seeds are reachable. I would rather my application to stop with a brief message saying the session couldn't be created because no connections could be made instead of it spamming my logs with failed to connects and no connections to run queries when I start my application up. Once the application is started at least at that point we have some level of certainty that the seeds are valid and in a total loss of connections we can start with the seeds again.