Fix authenticate with rackspace v2 - fixes #21

Rackspace are now rejecting requests which contain both the password
and the api key (which is a Rackspace extension), so

  * Factor v2 authRequest into swift and Rackspace variants
  * Try one then retry to try the other if it fails
  * Take a guess as to which to try first

This isn't a particularly satisfactory fix, but it does it without
breaking the published API and without causing any extra network
transactions normally.