codec: Support encoding structs as arrays (not just as maps).

Encoding struct as array allows type-safe arrays of different go types.

Also, cleanup decode.go by removing rawToStringOverride.
This was a vestige of the old msgpack extension support which should never
have bled into decode.go.

Updates #13 .