First draft of using buffer moves in place of buffer copies to create an
efficient [chan copy].
merge trunk
Extend the buffer move optimization to the "same encodings" case.
Test read error during binary [chan copy].
merge trunk
Make sure MoveBytes records read error messages.
Test format of write error messages during binary [chan copy]
merge trunk
Make sure MoveBytes error reporting reproduces what CopyData does.  Bugward compatibility!
simplify moveBytes selection logic
[9d19af7adb] Make sure all timer events get canceled.
merge trunk
Extend the "move buffer" implementation to cover the async case.
Use common MBError() routine for sync and async operations.
Rework MBWrite() so it can be used in both sync and async modes.
Reduce code duplication.
correct EOLFIX macro, broken by [a803608ed5]
merge-mark
Push MBWrite() differences out to callers.
Revise MBRead() to be used in both sync and async modes.
merge trunk