Modular Logging System

Allow coders to implement their own logging system.
This should be public so `UserHandlers` can change it in `OnLogCreated`