Update to last rust (wip).

This updates the library according to the recent changes in the Encoder and Decoder traits.

**This is not finished** (the current code does not compile), because I could not update one function: `Decoder::read_enum_variant`.

The current implementation makes several calls to its argument `f`, but the trait only require it to be `FnOnce()`, forbidding such use. I couldn't find how to change the implementation to match this requirement.