Use the new Database class (
DM-22508) as the backend for Registry, with a lot of pragmatism about how much to change. The goal will be to make this as transparent to Butler users as possible (I don't yet see a reason why it can't be completely transparent), and stick to:
- Making Registry a concrete class, basically just merging Registry's docs with SqlRegistry's implementations.
- Using Database instances to create engines and connections for Registry (and connecting RegistryConfig's connectionString logic with Database's).
- Using Database to emit all DDL (this probably means moving schema.yaml content to Python).
At this point, we'll just brazenly steal the (protected) connection object out of the `Database` instance to let most existing SqlRegistry method implementations remain unchanged. That will get fixed later as we port Manager objects over from the u/jbosch/prototyping branch.
This should take care of all of the code duplication that currently exists (core/schema.py and registry/ddl.py, registries/* and registry/databases/*).