Ensure authenticate never re-auths.

Other API functions will support re-auth as a matter of course.
If an auth token expires, we need to re-authenticate to acquire a new
token.  If re-authentication were itself to attempt re-auth, we
would end up in an endless loop.

If after authenticating gophercloud receives a 401 Unauthorized
response, then we must assume that the provided credentials are
incorrect.
diff --git a/errors.go b/errors.go
index f113446..5ea3991 100644
--- a/errors.go
+++ b/errors.go
@@ -30,3 +30,8 @@
 // exists in the service catalog.  This can also happen if your tenant lacks
 // adequate permissions to access a given endpoint.
 var ErrEndpoint = fmt.Errorf("Missing endpoint, or insufficient privileges to access endpoint")
+
+// ErrError errors happen when you attempt to discover the response code
+// responsible for a previous request bombing with an error, but pass in an
+// error interface which doesn't belong to the web client.
+var ErrError = fmt.Errorf("Attempt to solicit actual HTTP response code from error entity which doesn't know")