Allow passing options through to clients
Make HashRing public
Allow sharded publishing

Consistent hashing on the channel name to determine which node will
publish
Add `on` and `once` listeners
Allow shared eval