Support building with gccgo

This is just a proof of concept really.  I'm not super happy about the duplication between {dyn,}binary and the gccgo versions, but trying to avoid it seemed worse.

This builds using the go tool that's built as part of the build image/container already, which obviously isn't going to work on a platform that's not supported by the native go toolchain.  It is possible with a different Dockerfile to build on a not-yet supported platform (one of the reasons for caring about gccgo) -- you need to install gccgo and gccgo-go from our ppa at https://launchpad.net/~docker-team-r/+archive/ubuntu/ppa.  I'm not sure how best to use a different build image on some platforms though.