Go decoder: started implementing reflect-less decoder
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.
Go decoder: continue work
Go decoder: continue work (handle ref types)
Go decoder: support typePAD
Go decoder: correctly handle all REF types
Go decoder: handle OBJECT_FREEZE and OBJECTV_FREEZE
Go decoder: remove old code
Go decoder: move OBJECT_FREEZE logic to separate function
Go decoder: restore support of Sereal header
Go decode: this tiny changes makes ~10% of speed improvment
Go decoder: decodeBinary() should make a copy in some cases
Go decoder: correctly handle REFN REFP tags in decodeViaReflection
Go decoder: resolve data race around structTagsCache
Go decoder: make nameToType cache be part of decoder
Merge branch 'master' into kruglov/optimize_go_decoder
Go: skip more tests
Go: fix TestDecodeToStruct test

Test TestDecodeToStruct requires test_dir/test-decode-struct.srl
to be generated by cmd/gen/test-decode-struct.pl.

The fix is likely not the best one, but at least it works :-)
Go: skip TestDecodeToStruct if test_dir/test-decode-struct.srl does not exists
Go: create test_dir when build test_files