This works around an issue where you can not detect if a Cloud SQL
Instance is being snapshotted.
A new API restriction is that you can no longer delete an instance that
is being snapshotted so this suddenly began failing.
Now we look for a new snapshot and poll until it is ready only then can
we safely issue the destroy command.
This adds support for Brightbox's Cloud SQL DBaaS.
It is currently still part of the Compute service so all resources can
be managed from one connection to the service.
When passing an object that responds to `identity` which is all of our
resources, we can pass the resource's identifier in to the API call to
make it easier to use without maintaining a list of classes.
Server's need to use the interface for the destination so they override
a new `mapping_identity` method which is picked up first.
Anything else (such as a String identifier) is passed directly to the
API request as before.
Little known fact is that the public version of the domain name of a
Brightbox cloud server is the `fqdn` prefixed with public.
This is now fixed here until it is fixed in the main API and the value
can be referenced directly from the response.
Tests that Account#reset_ftp_password is working (had an issue
previously) and now merges the results in making the password value
available on the model whilst it exists.