Logging api

Refactorings to support testing logging interface. @bernerdschaefer @peterbourgon 
We're not optimizing for aesthetics or comprehensibility, but uniformity. All components in the `harpoon` repo should abide the same style: naming conventions, var scoping, whitespace, naming, etc. We're not there now, but we should move toward that goal with every commit.

As for what the standard should be, I have no strong opinions. But, we already have a large body of code (the agent) which uses very succinct single-word names with `c` suffix for channels. That's also a legacy from Bazooka, which I think has stood the test of time. Absent  compelling reasons otherwise, and to avoid wasting time applying paint to bicycle shelters, I would propose to default to embracing extant albeit informal conventions.

(I'm slowly migrating the scheduler to abide this naming standard, as well.)

That said, let's visit this topic more thoroughly as we begin the agent refactor mini-epic. That would be the correct place to decide this kind of thing.