Add deleteContainerIfEmpty to BlobStore

This matches how most blobstores operate: delete container is a single
operation, not a compound operation which recursively deletes blobs.
Just a question: is this supposed to be an either/or decision? If so, use an `else` in the logic? Otherwise (since the path check comes first) call this `FalseOnPathNotEmptyTrueOn404`?