sstable_stream_sink_impl::load_metadata() used file_exists() on a
local filesystem path to check whether the Scylla metadata component
exists. For S3-backed storage this always returns false because the
file lives on object storage, not locally.
This means that when streaming encrypted SSTables, each component
gets a fresh encryption key (because the previous key from scylla
metadata is never loaded). Only the last key survives in the metadata
on S3, so all other components become unreadable — decryption with the
wrong key produces garbage, leading to parse failures or OOM crashes
on sst->load().
Replace file_exists() with _sst->_storage->exists() which correctly
checks for the component on whatever backend the SSTable uses (local
filesystem or object storage).
Fixes https://scylladb.atlassian.net/browse/SCYLLADB-1704