agent: use harpoon-supervisor

The primary goal of this PR is to get harpoon-agent using the new harpoon-supervisor instead of harpoon-container.

With that in mind, I've attempted to limit the changes (behavioral, code) to the agent; we already have other issues which can address this (e.g., #8 and #54), and it would be nice to have all new code using the supervisor sooner rather than later.

Implements #48.
I think this testSupervisor makes the test harder to understand and more complicated than it needs to be.  It serves to feed events into the control channel and to read events from the control channel.  It could be replaced with explicit functions to do these tasks.

That will probably simply the logic here, and also make the tests' intent clearer.