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.