Avoid crashing if storage redirect is enabled with S3 and there is no Cloudfront configured

Small fix if using S3 storage backend and `storage_redirect: True`.

Avoids exception:
```
Stacktrace (most recent call last):

  File "flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "newrelic/hooks/framework_flask.py", line 86, in wrapper_Flask_handle_exception
    return wrapped(*args, **kwargs)
  File "flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "newrelic/hooks/framework_flask.py", line 40, in handler_wrapper
    return wrapped(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/docker_registry/toolkit.py", line 269, in wrapper
    return f(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/docker_registry/images.py", line 35, in wrapper
    return f(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/docker_registry/images.py", line 56, in wrapper
    return f(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/docker_registry/lib/mirroring.py", line 128, in wrapper
    resp = f(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/docker_registry/images.py", line 207, in get_image_layer
    return _get_image_layer(image_id, headers, bytes_range)
  File "/usr/local/lib/python2.7/dist-packages/docker_registry/images.py", line 82, in _get_image_layer
    content_redirect_url = store.content_redirect_url(path)
  File "/usr/local/lib/python2.7/dist-packages/docker_registry/drivers/s3.py", line 138, in content_redirect_url
    if not self.signer:
'Storage' object has no attribute 'signer'
```