Refactor the config loader and remove deprecated values
When attempting to remove deprecated values, it became very clear that many of the example configs were very outdated or had errors.
This change refactors the config loader in the following ways:
- deprecated values are removed.
- A single json schema now exists to caputre all component definitions.
- A simpler decorator pattern is used to register tag factory methods.
- Each yaml loader is created in isolation, avoiding clobbering global state on the yaml baseclass.
- A validate method now exists.
- All example configs in the project are validated as a pytest. Should avoid regressions
- A helper tool
bgd server lint
exists to validate the format of configs.
- Now mypy can be enabled globally. This removes the last of the mypy exceptions.