Fix Storage#create_temp_url implementation

The original code relied heavily on instance variables set up
in advance. These were removed to use delegated methods
to the configuration.

This left the temporary code with a number of gaps and a broken
check to see if the `storage_temp_key` is set. Fixing the first
issue revealed it was generating invalid links or signatures.

This implementation has been compared with alternative versions
and tested against a live instance successfully.