Add copyBlob to portable abstraction and add S3-optimized variant

See above comment