Recompile when testing.
Document encoding.Text{Marshaler,Unmarshaler} types.
An example for using the encoder.
Check key names for invalid characters when encoding.
Remove superfluous lines.
Document the encoder.
Include more details in package level docs.

e.g., Additional features, sub-commands and testing strategy.
Short description of each sub-command.
Support strict decoding.

This required a small change to the decoder so that we keep track of
which keys have been decoded. Finding the undecoded keys is then a
simple set-difference operation.

Regrettably, this required deprecating PrimitiveDecode in favor of
a new MetaData.PrimitiveDecode. This is necessary so that the set of
decoded keys is updated in place when decoding Primitive values. This
also required a change in the representation of Primitive, but thankfully,
I had declared that as not part of the public API.

The original and deprecated PrimitiveDecode will still function correctly
if you are not using the Undecoded method.