Add copyBlob to portable abstraction and add S3-optimized variant

We need this as a placeholder for future options.