go: encode structs as maps with field names, not unnamed arrays
go: test-compat.pl -- be as strict and verbose as possible
go: cleanup TODOs
go: create encoder/decoder types

We'll need to pass options to the Marshal and Unmarshal routines.  This
is the first step of that.
go: better compat corpus target
go: todos++
go: improved compat testing script

Compare Data::Dumper output instead of is_deeply, which lies.
go: rewrite so it's useful as a Go serialization layer

Previous to this, it was only useful when dealing with data structures
constructed from Perl.  Actually handling any of the deserialized data
was painful.  This commit brings it more in line with what Gophers are
expecting from a serialization module.
go: test unmarshalling into a structs and maps