go: fix title-casing key names on decode

The decoder allows unpacking a key 'name' into a struct field Name.
This functionality was broken in 6b2b15ab4 .  This fixes it and adds a
test to prevent it breaking again.