Add copyBlob to portable abstraction and add S3-optimized variant

Do we actually need this (and the parameter to the methods) if we're not honouring it yet?