Fog::Model#wait_for: eliminate inner retry loop

AWS frequently takes more than 3 seconds for an instance to appear.
Rather than having the overlapping timeouts for reload and
instance_eval, simply make them both occur with the same timeout.

 + Prevents spurious failures when waiting for AMI
 + Easier to follow flow
[cloudstack] add disk_offerings, os_types mock data
[cloudstack] add list_os_types, list_disk_offerings request mocks
[cloudstack] list_os_types, list_disk_offerings request tests, rm pending
Merge pull request #1750 from dm1try/cloudstack_add_list_os_types_and_list_disk_offerings_mocks

[cloudstack] Add list os types and list disk offerings mocks
Merge pull request #1748 from maginatics/timeout2

Fog::Model#wait_for: eliminate inner retry loop
[cloudstack] servers collection, add attributes to :all method
Merge pull request #1754 from dm1try/cloudstack_add_attributes_to_servers_method

[cloudstack] servers collection, add attributes to :all method
Changes the path only if subdomain is not @host

see https://github.com/fog/fog/issues/1631#issuecomment-16396992
Merge pull request #1757 from mhuin/fix_subdomain_check

Changes the path only if subdomain is not @host
AWS | storage: use #service instead of the deprecated #connection in the tests
AWS | storage: add tests for directory#public_url
AWS | storage: add more uniq_id in the tests to avoid collisions
AWS | storage: disabling broken tests
AWS | storage: make directory.persisted? tell the truth

directory.persisted? was relying on the directory having a key which is almost
always true and not related to storage anyways.
AWS | storage: fixes ignored location with new buckets

When creating a new directory the location wasn't forwarded properly.

Something like the following is now working as expected (see limitation below):

    Fog::Storage[:aws].directories.create(key: 'bucket', location: 'us-west-1')

It also changes the following behaviour: when no location is specified new
buckets are explicitly created in the same region as the service connection.

Known limitations:

Fog::AWS::Directory instance don't use their location to connect to S3.

If you're using an AWS::Storage with a region different than us-east-1 you
can only create buckets in the same region.
AWS | storage: big refactor

Logics have been centralised:

* region to hostname
* url generation
* signature
* chaning scheme also changes the port

During the process a couple of inconsistencies have also
been fixed.

Known limitations:

When using the @endpoint with a custom port you need to specify the port
when using get_object_http_url or get_object_https_url.

When using bucket names that contain dots outside of us-east-1 make sure to
access it with the same region in your AWS::Storage.
AWS | storage: also escape the bucket name when using the path_style
fix case where volume isn't instantly available to attach upon creation
Merge pull request #1758 from AltJ/master

Wait for volume to be available before attaching