The previous commit contains a breaking change that is documented here.

In light of the recent changes to the `Decoder` and `Encoder` traits
(unboxed closures), the continuations used to decode/encode things can
only be called once. This has resulted in two semantic changes to the
way decoding works:

  - Enum decoding now only matches by name. Previously, it tried to
    decode into each variant and accepted the first one that worked.
  - Option decoding will only emit `None` when the field is empty.
    Previously, `None` was emitted if decoding its inner value failed.

[breaking-change]