Add some timing to the build step

This takes very long for the size of my go program.  I need to fold
everything into go binary and use the normal build process.
Add compile time and job size tracking

This monitoring is needed for accurate speed computation of hosts.
Job compile speed computation

After a short an unscientific analysis it looks like even with a variety of
files the output size divide compile is a relatively good metric for how
fast a machine is.
Added optional linux32 cross compiling

This is to enable quick use on 32-bit linux platforms.  A more robust
solution would using something like goxc, but our simple solution works
well for now.
Make the monitor observer system type agnostic

We want to be able to send all the things like worker info as well as job
status through the same channel.
Re-wrote the monitor program to be rebust to network issues

It will stay connected and displaying data no matter what!
FIXUP remaining monitor
Monitoring software now gets server list sent it

This just sends out all the worker state once a second to any monitoring
program.  It's very basic, but we can now see what workers are connected
to our server very easily.
Add a very basic debug logging system

We just use a global variable and some utility functions to direct traffic
to it.  If we need something more we will have to go with one of the
external go logging projects.
Add cbdcc logging with the CBD_LOGFILE environment variable

When the environment variable is present DebugLogging is set to true and
the go logging module directs it's logging messages to the given file. This
is useful because we don't want to pollute what is supposed to be the
output of the build tool with our software's messages.
WORK IN PROGRESS