* Apply insights and constraints from early reviews
* Add support for Core/Relay sub/unsub/receive
* WIP Edge support (new EdgeDriver placeholder)
* Hook MessageReceivedInternalEvent to Kernel API bus
* Fix MAPI vs Kernel API unique relay handler support
* RecvService delegating topic subs to SubscriptionService
* SubscriptionService abstracts Core vs. Edge switching
* RecvService emits MessageReceivedEvent (fully filtered)
* Delete SubscriptionService.shardSubs
* Track relay shard sub with empty contentTopicSubs val
* Ensure relay shards never unsubscribed for Core for now
* SubscriptionService tracks shard and content topic interest
* Emit MessageReceivedEvent on subscribed content topics
* Add selectPeers() to PeerManager for future edge node sub impl
* Add test_api_subscriptions.nim with a placeholder sub test