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.
Why was this changed?