Fix cache operations by checking if bucket exists

Bucket creation via uber-s3 may be broken. Running the previous existence check via attempt to create bucket code gives the following error:

    Digest::Digest is deprecated; use Digest
    UberS3::Error::SignatureDoesNotMatch: SignatureDoesNotMatch: The
    request signature we calculated does not match the signature you
    provided. Check your key and signing method.

With this patch, we safely determine if the bucket exists and only attempt creation if the bucket is missing. Further investigation is needed since bucket creation as coded here fails in the same way.
But at least that can be worked around by creating the bucket with an external tool.