A collection of libraries and commands for GWT's automated build
infrastructure.

The main tool of interest is the "presubmitter" command, which
periodically polls Gerrit for new unverified changes and runs various
presubmit checks on them.

Buildglue follows normal Go project conventions, so it can be
downloaded and installed in just a few steps:

  # Create a Go workspace (if you don't have one already)
  mkdir buildglue
  export GOPATH=$PWD/buildglue

  # Invoke the go tool
  go get gwt.googlesource.com/buildglue.git/...

The $GOPATH/src/gwt.googlesource.com/buildglue.git directory will now
contain a clone of the buildglue Git repo, and the $GOPATH/bin
directory will contain the compiled commands.

(Caveat: Because googlesource.com currently silently ignores TCP
connections to port 9418 instead of rejecting them, the "go get"
command takes longer than necessary to download initially.)
