S3 access refactor

Logics have been centralised:

* region to hostname
* url generation
* signature

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

The method signature of http_url and https_url has changed, they now
require a bucket_name param