UPDATE: refactor & improve logging code

* Logging code condensed into a class with better module usage semantics
* Override python logging for library submodules to capture, control, and reframe log output
UPDATE: remove redundant code

* Removed unneeded extra sys.path.append()'s from submodules
* Removed unneded access to addon properties
UPDATE: add ToDO for better firstrun logic