Export Connection.Transport for use on Appengine

Some environments, such as Google Appengine, have restrictions on sockets.
An http transport can be used with Connection to interface to the custom
backend:

  import (
      "appengine/urlfetch"
      "fmt"
      "github.com/ncw/swift"
  )

  func handler(w http.ResponseWriter, r *http.Request) {
      ctx := appengine.NewContext(r)
      c := swift.Connection{
          UserName:  "user",
          ApiKey:    "key",
          AuthUrl:   "auth_url",
          Transport: urlfetch.Transport{Context: ctx},
      }
      err := c.Authenticate()
      if err != nil {
          panic(err)
      }
      fmt.Fprintf(w, "Authenticate OK")
  }

Fixes #5
Original fix by @vmihailenko
Add Stephen <yo@groks.org> as a contributor
Detect old servers which don't support BulkUpload and Versions better
Improve tests for old and slow servers

  * Skip versions tests if they aren't supported
  * Add longer timeout by default for the tests
  * Clean up versions containers more carefully