Use server-sent events

This is the implementation of #14 for harpoon-agent. It's also the first unit test :)

For now, the previous event interfaces still exist in the agent lib, and are still implemented by the agent's internal types. @peterbourgon, should those changes take place here? Or as a part of the scheduler changes?
Looks like the docs aren't complete here; `Encode` writes a complete event message (i.e., already flushed).