Instance refactor

* add topology decoupled command shard
* add range splitting
* add locally sharded command metadta classes
* rework topology changes to include local topology
* make shard collections immutable
* add multi-shard response tracker

Co-authored-by: Blake Eggleston <beggleston@apple.com>
Co-authored-by: Benedict Elliott Smith <benedict@apple.com>
58 files changed