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

Something like the following wasn't respected:

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

We're still not using the bucket location to connect to Amazon. If we want
to have proper queries we need to create a new instance of AWS::Storage with
the region set to the bucket location.

It also changes the following behaviour: when no location is specified new
buckets are created in the same region as the service connection (instead of
us-east-1 as before).
AWS | storage: big refactor

Logics have been centralised:

* region to hostname
* url generation
* signature

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