Massive reform of tests.

This also adds a lot more tests. Interestingly, I only uncovered
one bug. Namely, decoding into enum variants does not work like it
says on the tin. I claimed that enum variants with and without an
argument were supported, but I don't think this is actually possible.

Therefore, support for decoding into zero-parameter enum variants has
been removed. Support for enum variants of a single argument is still
supported.

Unfortunately, the failure modes here are pretty bad. There's no way
to detect (in the decoder) how many parameters each variant has, so
the decoder will continue on happily. *sigh*

There is no substitute at the moment aside from writing your own
impl for Decodable.

[breaking-change]
0.6.3