Logging: AbstractPublisher, implemented sync/async. Added header/footer for publisher. Added stringTemplate method, uses Utils, minimize direct dependency on Utils. Ensure that we get a terminate/begin cycle without having to call directly parent from extending classes. Refactored flush method, takes an array to batch process all events at once.
Logging: CompoundPublisher, refactored to implement changes to ILogPublisher. Added has method.
Logging: ILogPublisher, added begin method. Changed signature of flush, takes an array instead of single item.
Logger: ILoggerFactory, renamed method to getLogger.
Logging: TerminalPublisher, implementing header/footer.