Add cross compilation to the standard build process

Currently, we will cross compile for Darwin (386, amd64) and Linux (386, amd64, and arm), but only because windows and freebsd currently won't compile without some tweaks to the docker source.

There are also a few small hack and Dockerfile related cleanups here, including restructuring the Dockerfile to grab the Go source instead of precompiled binaries (since we need that for cross compiling - have to cross compile the toolchain first, of course).

/cc @shykes