Supplier should never return reusable database
adds load methods for modules and environment var
use database interface the right way
moves exceptions to /Lib
adds ModuleRegistry to globally register modules
adds abstract Module class
adds methods to access config values
use consistent naming
ModuleRegistry is limited to registering modules
adds static log class
bootstrap can now load modules