A remote buildlet is a buildlet created or assigned by the
coordinator, on request of a client (such as cmd/gomote or
cmd/release). The client must occasionally refresh the buildlet to
keep it alive, and the coordinator proxies all requests to it.
Currently, if the coordinator dies or restarts, all buildlets are lost.

The permission to do this is controlled by a special type of build key
starting with "user-" instead of a GOOS. The form will be of
"user-USERNAME". The user-$username and key
(via https://build.golang.org/key?builder=user-WHO) are sent via
HTTP Basic authentication.

Flow:

*) Client (e.g. pkg buildlet, via cmd/gomote or cmd/release) makes a
   POST request over key-pinned TLS to the well-known TLS cert of
   farmer.golang.org

      POST https://farmer.golang.org/buildlet/create HTTP/1.1
      Authentication: Basic user-$username userkey
      Content-Type: www/form-url-encoded

      type=darwin-amd64

      HTTP/1.1 200 OK
      Content-Type: application/json

      {
          "Name": "user-adg-darwin-amd64-0",
          "Type": "darwin-amd64",
          "Created": "..",
          "Expires": "..",
      }

*) Client may list open buildlets like:

   GET https://farmer.golang.org/buildlet/list HTTP/1.1
   Authentication: Basic user-$username userkey

   HTTP/1.1 200 OK
   Content-Type: application/json

   [ {"Name": ...}, {"Name": ...}]

*) Client makes requests like:

      (buildlet method) https://farmer.golang.org/(normal buildlet paths) HTTP/1.1
      X-Buildlet-Proxy: adg-darwin-amd64-1
      Authentication: Basic buildlet-$username $buildkey

   If buildlet is missing, 502 Bad Gateway.
   If auth is bad, 401.

*) Client may release it by doing the normal buildlet.Client.Destroy call
   to its /halt method.
