Go decoder: started splitting reflect-less decoding and decodingViaReflection

I realized that decoder is smarter then I thought it's :-).
So one of usecases is decode hash to a struct by filling field
which match hash's keys. Or, the usecase where only limited
number of elements in slice ([5]string) should be decoded.
I call such cases as decoding with known structure.

So, when decode with known structure decoder needs to employ reflection's
features. Unfortunatelly, it's quite slow. To keep both high-performance
when decoding with unknown structure and the nice feature I've started
created two code path. One fast but stupid (reflection-free),
another one is slow-but-smart (decodeViaReflection).

The later one uses reflection-free one whenever possible to speed up
performace.