*: use TeeReader to reduce I/O in CAS

@jonboulle I think having LimitedWriter is better. Here it's unclear if N limits reads or writes (w/o docs). Requiring io.ReadWriter buys you nothing (you just have a pass-through method for Read) while limiting with what you can use this thing. If this is about limiting writes, why kitchen sink it?