Compiler: selective schema/native implementation
I propose that we change how compiler handles fields that are currently schema-implemented eg. varint. For each field, compiler should have a set of runtimes that have native-implementation. This way same field can be natively implemented in few (very few) runtimes. Compiler would on each field, either defer to KaitaiStruct (if native-impl exists) or to schema (if doesnt). Each runtime would implement a different superset of a common minimum.

Runtimes that are expected to have high performance would use this feature more than others. 

Also, this touches the problem of missing types in certain runtimes (eg. bigints). VarInt schema-impl uses 8 bytes, native-impl would be free to implement arbitrary amount. This could create inconsistency in field semantics between runtimes, so a decision should be made in advance should all native implementations have same semantics or not.
