huge grohl rewrite

* separate Context into a separate type from the Logger
* support the Statter and ExceptionReporter interfaces
* Remove mutex concerns, add channel logger

I want to roll this into alambic and see how it feels first.