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.
Well, yes: it doesn't work.  -ldflags are ignored when you pass -compiler gccgo (and you get a warning "go build: when using gccgo toolchain, please pass linker flags using -gccgoflags, not -ldflags").  You could the flag itself (-ldflags vs -gccgoflags) be set in an env var, but it starts to get ugly I think.  Maybe I should try it anyway and see how it goes...