better/more source comments
new App snaplet name
bughunt: rewrite arbitraryMatching in Test.hs
fix: Test.arbitraryMatching1

what i did: first create specified fields and extra fields in maybes,
then drop all the nothings, and then weed out extra fields that would
shadow existing fields.

problem: if a specified optional field is dropped, it can be replaced by an extra field that does not match the structure of the optional field.

fix: only create extra fields with free names to start with.