Impl Reader/Writer for generic mut references

I noticed that Reader and Writer aren't implemented for generic mut references. So, this PR adds those implementations. I don't fully understand if there is a reason why those impls don't currently exist, so this is a bit of an RFC. However, these impls are useful for some code that I'm writing, so, I think that they may be  generally useful.

A general question: why doesn't Rust derive these impls automatically? Is there a fundamental reason why it can't be done, or is it just something that no one has had time to get to yet?

I also modified LimitReader to take the wrapped Reader by value instead of by reference.

@sfackler