Attempt at decoding directly to struct rather than interface{}

This is a very early WIP. It does not currently work and it will
blow up if you try to use it.
Reflection fixes
Removed debugging.

This branch now works with the GeoIP2 reader. When used with a GeoIP2
City record, each lookup takes about 1/3 the time that is previously
did.
Allow decoding to interface{}. More tests work.
Re-enabled all tests
Fix for missing fields. Removed Unmarshal.