Following work on reorganising the requires, there was an inconsistent
approach to where service wrappers are required. (Fog::Compute...)
Since they should be standardised and shared across providers (although
they really aren't yet) they have been moved to `fog-core` gem.
Each provider has their own `lib/fog/{provider}/core` files that is
required by each of their services. These files should all require
`fog/core` which already required most or these.
So this removes the extra cases to concentrate them in core.
The 'connection' accessor in collections and models actually refered to
a subclassed instance of Fog::Service which creates confusion in the
code.
References to 'connection' could have meant the service or the
Fog::Connection held within that service.
This deprecates the connection accessor and replaces it with `#service`
as a read only value. When a collection or model is initalised then
service should be passed.
This commit also updates all the changes to @connection made by
providers in model initialisers since these depending on the presence of
the 'connection' key. The key is still accepted by outputs a warning.
Refactor ninefold to provide generic Atmos support. Add an additional
argument, when compared to ninefold, which is the endpoint. The
endpoint should be a full URL, e.g.
https://storage.provider.com:1337/atmos. The API path and port are
optional. If the port is not specified, it is inferred from the
protocol.