Implement streams.

Fixes to Transfer: Prevent state corruption when resubmitted in
callback. Attach the callback in the constructor instead of
.submit().