Add copyBlob to portable abstraction and add S3-optimized variant

Thanks for beating me to it, @jdaggett ;-) In that case, perhaps name the method in which the error occurs more explicitly, e.g. "in copyObject"?