Refactor Logger to use template mixins and string mixins to eliminate bo...

...ilerplate.

This still may not be the optimal way to do this, but it works pretty well.