Fixes #43.

Array hashes were being considered as normal keys rather than hashes,
which sometimes caused them to come before other keys and therefore
producing incorrect TOML.

This was fixed by being a bit cleaner with type handling. Now tomlTypeOfGo
is a single point of truth about finding the TOML type of a Go value.

This includes a regression test from #43.