Reorganize into multiple packages

Enable hrotti to be used like a library by removing global variables and moving
basically all of the code into a non-main package. The motivation for this is to
be able to use the broker in unit tests for other projects.

Right now, this breaks plugins. Since there is no dynamic linking in Go, we are stuck with either dumping plugin source code into hrotti source tree, or providing a mechanism to run plugins in their own process via RPC. My vote goes for the later, but then again I have no experience with that :8ball: