Client-side tier-aware query runner

This PR introduces an experimental concept of a router node that polls the coordinator to determine information about where queries should be forwarded to based on the rule setup. The router node will sit in front of broker nodes and forward queries to brokers that may be dedicated to certain tiers. Most of the logic in the router node actually belongs in the broker node, but since memory management in the broker still requires some work, it'll exist as a separate entity for the time being.