A file to import for the side effects

Gross.
Change from entry points to subclass lookup

Recursively look up subclasses. Note that we also import a file for import
side effects. That's gross.
Add a base class for config objects

Subclasses dict so we can use subclass lookup. Not optimal but a workable
solution.
flake8 cleanup