Add a few decoding optimizations
Add a few decoding optimizations

Add a fast path for decoding strings, used from decodeMap. Avoids
an empty interface boxed and a type assertion per key.
Pre-allocate space for maps and slices
Replace switch with if chain for getting ptr dest.

benchmark                 old ns/op    new ns/op    delta
BenchmarkLookupIP             45388        39136  -13.77%
BenchmarkLookupIPValue        32878        26418  -19.65%

benchmark                old allocs   new allocs    delta
BenchmarkLookupIP               155          101  -34.84%
BenchmarkLookupIPValue          136           83  -38.97%

benchmark                 old bytes    new bytes    delta
BenchmarkLookupIP              8430         7678   -8.92%
BenchmarkLookupIPValue         6379         5627  -11.79%

rainycape/geoip,rainycape/geoip