Add better name matching for python class level configs

Added BaseConfig class from which to subclass from, this is required for inspect predicate to match. This can still be subclass from an "Application" or "Project-level" Base Config class just fine.

Added one more sane default possible name: `self.env.upper()`

Updated docs and fixed typos