[aws|storage] ensure connection uses correct scheme, host and port

Currently, the `:scheme`, `:host` and `:port` are determined in
`#request_params` and passed as request parameters. However, passing
these as request parameters does not override the URI used to establish
the connection, which is used by Excon for the underlying socket.
Excon now considers these to be invalid request parameters.

This patch defers establishing the connection until the proper URI is
known, while still allowing the `:persistent` option to work as long as
the URI doesn't change.

---
I have a few questions I'll add as line notes.