Modular Logging System

Allow coders to implement their own logging system.
As long as we're moving this to a separate class, we might as well change the bad naming convention.