* Move tenant.Service unit tests into its package
* Delete the top-level TenantService interface now that it's not used.
* Move helper funcs for setting up test stores into testing pkg
* Delete duplicate implementations scattered through the codebase
* Move error assertions into store-creation helpers
* refactor: migrator and introduce Store.(Create|Delete)Bucket
feat: kvmigration internal utility to create / managing kv store migrations
fix: ensure migrations applied in all test cases
* chore: update kv and migration documentation
* feat(tenant): Build the crud actions for the new tenant service
To faciliate the isolation of domain specific systems we need to have a
isolated CRUD action system that we can layer business logic on top.
Co-authored-by: George <me@georgemac.com>