Hook up the unknown fields mechanism to generated records.

Requires some minor tweaks to UnknownFields.

Also includes very comprehensive unit tests. These replace the old
tests which merely verified that we can skip unknown fields. Now
we verify that we preserve them.