Support Provider API Url Override

Exposes Provider.getUrl per issue #150.  This allows you to connect to test urls or private cloud services.

### Java
All providers support overriding the default url such as below:
```
CloudDNSProvider provider = new CloudDNSProvider("https://lon.identity.api.rackspacecloud.com/v2.0/");
manager = Denominator.create(provider, credentials(username, apiKey));
```
The below syntax facilitates dynamic url changes.
```
Provider fromDiscovery = new UltraDNSProvider() {
  public String getUrl() {
    return discovery.getUrlFor("ultradns");
  }
};
```

### CLI
Here's an example of how to override the default url with the cli:
```
denominator -p ultradns -u http://testcloud.ultradns.net/UltraDNS_WS/v01 -c USERNAME -c PASSWORD zone list
```
The cli `providers` command will now also display the default urls:
```
$ denominator providers
provider   url                                                  credentialType credentialArgs
mock       mem:mock
clouddns   https://identity.api.rackspacecloud.com/v2.0/        apiKey         username apiKey
dynect     https://api2.dynect.net/REST                         password       customer username password
route53    https://route53.amazonaws.com                        accessKey      accessKey secretKey
route53    https://route53.amazonaws.com                        session        accessKey secretKey sessionToken
ultradns   https://ultra-api.ultradns.com:8443/UltraDNS_WS/v01  password       username password
```

### Testing
You can override the url tests use by adding the PROVIDER.url property to your gradle commandline.
ex.
```
./gradlew clean test install -Dultradns.url=testcloud.ultradns.net/UltraDNS_WS/v01 -Dultradns.username=USERNAME -Dultradns.password=PASSWORD -Dultradns.zone=denominator.io. -Dultradns.rrset-geo=zone=geo.denominator.io.,name=allen.geo.denominator.io.,type=CNAME,group=europe
```