[ServiceDiscovery] Now with Fewer Args At #new Time™

Ok, fewer keyword args, anyway...

Because the same service may exist in multiple providers, e.g. …
`IdentityV2` will be in both Rackspace and HP, it became necessary
for the `ServiceDiscovery` to register the provider's name when
registering the "base_provider_path".

What also shook out of this is that "base_provider" probably
only needs to be stated once: when the provider is registered
with `ServiceDiscovery`.

Now, providers register with a single call as follows:

```ruby
ServiceDiscovery.register_provider(
	'openstackcore',
	'Fog::OpenStackCore',
	'the/path/to/osc/services'
)
```

and `ServiceDiscovery` is now instantiated as follows:

```ruby
ServiceDiscovery.new('openstackcore', 'identity', options_hash)
```

and `base_provider` is no longer an option as this is specified once and only once for any given provider.  For instance, it is specified for OSC in `Fog::OpenStackCore`.  OSC itself is treated just as any other OpenStack provider in this case.