Move most client code into the cbd package

It hasn't been properly setup yet, but having it out of the binary will
make it easier to test, eventually.
Add the originating host to CompileJob's

This makes it easier to track the status of things as they flow through
the system.
Split up test.sh into a build.sh and test.sh provide basic dev README

This lets us build the software quickly if we are testing with an external
program.
Fix crash bug when no server was present and add more tests

We now explicitly have integration tests to make sure we get no crashes
when the needed processes are not running.
Update test to check for zombie cbd processes

This can trip up the tests and cause hard to debug errors.  In the end
using something like containers to setup a test environment would be
better.
Implemented "monitor" observer pattern for job completion

This will be used inside the server to send job completion information to
multiple network clients.
Job completion reporting and small updates

The client now reports completed jobs up to the server.  The small updates
are better doc comments, and some more information in the logging messages.
Server monitoring integration and monitoring app

This prints out the job completion information as it's being delivered,
nothing fancy yet.