[google|sql] Initial support for Google Cloud SQL

This commit adds the initial support for Google Cloud SQL:
- Adds a new service 'SQL' to the existing 'Google' provider
- Creates new shared methods to be reused by different services
- Add requests, models and tests for Tiers
Remove providers directory

Modular code is gem based and we have been using fog-brightbox as a
prototype for a while now as a proof of concept.

Management of numerous gems within the code base did not look like it
could scale particularly well for fog.
[vsphere] Use the server_id in interfaces.

Using a reference to the server object in the interfaces model leads
to a circular dependency when calling .inspect() on the server.

Specifically, every server object has a reference to an interfaces
collection. Each instance of the collection has a reference to the
server object. When attempting to print out the object (in CLI or by
calling .inspect()), this results in a loop: the server object's
attributes are printed, which calls .inspect() on the interfaces
field, which in turn calls .inspect() on the server field, and so on.

The patch makes a functional change to address this. The interfaces
class now expects a server_id (which can be retrieved with server.id).
The id is used internally when performing any lookups for that VM.

The patch also adds server() and server=() helpers, such that callers
that rely on this functionality will not break.

Refs: #2938
[vsphere] Use server_id in the Volumes collection.

If a reference to the Vsphere::Server object is passed explicitly, to
the Vsphere::Volumes collection, a loop is introduced when attempting
to print out the Vsphere::Server object. The attributes for the server
will include a reference to the Vsphere::Volumes collection, which in
turn includes a reference to the server object.

As opposed to passing a reference to the Vsphere::Server object to
the Vsphere::Volumes collection, this patch modifies the interface to
expect a Vsphere:Server ID. The ID is used to perform any subsequent
lookups of the server object -- if required.

Fixes: #2938
Remove edge check for fog-brightbox

Pulling too many remote sources from all the providers will make this
check very unstable. We should assume that we are only dealing with
released gems.
Merge pull request #3058 from fog/remove_providers_directory

Remove providers directory
Add fog-softlayer module .
remove duplication in fog/xml connection stuff
[cloudsigma] remove meaningless 'related' attribute type
[vcloud_director] allow nullable FenceMode
[aws] support `xvd` based devices (HVM)
fix 2.1.1 syntax error with updated attributes
Merge pull request #3060 from engineyard/support_xvd_based_instances

[aws] support `xvd` based devices (HVM)
Merge pull request #3040 from maginatics/bug/2938/vsphere_models

Use server_id for Vsphere::Interfaces and Vsphere::Volumes
Merge pull request #3059 from cphrmky/fog-softlayer

Add fog-softlayer module .
bump fog-core dep
remove explicit call for 'type' hash, fallback to default
fix erroneous date_time type
Update create_server.rb

Repair bug for platform attribute of a vm.
Merge pull request #3063 from georgyous/master

Update create_server.rb