Optimize block copy from Reader -> Writer

Cut out the expensive Put and Get and do everything in a single read and
single write action.

Depends on the FileLikeObject being used, but in the profiler
application this optimization took out nearly 85% of the insructions.

BEFORE: average 11087 instructions

AFTER: average 1751 instructions