Token based authentication in openstack-keystone

This PR adds support for token based authentication in openstack-keystone. 

Currently openstack-keystone only supports authentication against keystone service using only username and password credentials, using the following rest request 
```
{
    "auth": {
        "tenantName": "demo",
        "passwordCredentials": {
            "username": "demo",
            "password": "devstack"
        }
    }
}
```

This PR adds support for using token based authentication which is translated to the following request to keystone:
```
{
    "auth": {
        "tenantName": "demo",
        "token": {
            "id": "cbc36478b0bd8e67e89469c7749d4127"
        }
    }
}
```

In order to use this new authentication scheme one must override the CREDENTIAL_TYPE property and set it to the new value TOKEN_CREDENTIALS. Here's some sample code
```
            // get authtoken from authentication service
            Properties overrides = new Properties();
            overrides.put(CREDENTIAL_TYPE, TOKEN_CREDENTIALS);

            Set<Module> modules = ImmutableSet.<Module> of(
                    new org.jclouds.logging.slf4j.config.SLF4JLoggingModule(),
                    new org.jclouds.sshj.config.SshjSshClientModule()); 

            ComputeServiceContext computeServiceContext = ContextBuilder.newBuilder(provider)
                .endpoint(endpoint).credentials(tenant + ":" + username, authToken)
                .overrides(overrides)
                .modules(modules)
                .buildView(ComputeServiceContext.class);

```
All you have to do in this case, is instead of supplying a password as a second argument to the `credentials()` method, you supply an authentication token that you have previously acquired.

Here I followed the existing scheme but I kept single 3-space indenting instead. Do you mean something like the following?
```
   public HttpRequest initialAuthWithTokenAndTenantName(String token) {
      return HttpRequest.builder().method("POST")
         .endpoint("http://localhost:5000/v2.0/tokens")
         .addHeader(HttpHeaders.ACCEPT, "application/json")
         .payload(
               payloadFromStringWithContentType(format("{\"auth\":{\"token\":{\"id\":\"%s\"},\"tenantName\":\"%s\"}}", 
                     token, getTenantName()), "application/json")).build();
   }     
```