return self from #on instead of reader or writer

this leads to really confusing bugs, because chaining #on has crazy
semantics.