Writer: Take io::Write directly, not a mutable reference
Writer: Take io::Write directly, not a mutable reference

Taking a mutable reference forces users to always have a mutable reference to the inner `Write` instance that must outlive the `Writer` instance. This is inconvenient because it disallows a user to properly wrap a `Writer` instance in another struct without forcing the outer struct to _also_ accept a mutable reference, and it's actually unnecessary, since `Write` is implemented for `&mut Write`. Additionally, we're forced to use dynamic dispatch for the underlying `Write` instance, which is likely to be inefficient.

This shouldn't be a breaking change for most user code since `Write` is implemented for `&mut Write`, although code which wraps a `Writer` today will need to change to reflect the new generic parameter instead of the old lifetime.

This is conformant with C-RW-VALUE in the Rust API guidelines (https://rust-lang.github.io/api-guidelines/interoperability.html#generic-readerwriter-functions-take-r-read-and-w-write-by-value-c-rw-value).

kevinmehall/rust-vcd