Use mutability in object reading
Use mutability in object reading

The use of `Vec#splitn` and returning a "rest" buffer on each read was
awkward when coupled with the borrow checker (it would be less awkward
with garbage collection, I feel, which makes it not such a great fit for
the more static world of Rust).

Here, the use of mutability makes reading from the buffer more
ergonomic, and the key is to use the `BufRead` trait.

avik-das/gitters,avik-das/gitters