smarter handling of GCABI

gc_abi.h defines the following flags describing the kernel interface to
etna:
- GCABI_CONTEXT_HAS_PHYSICAL: struct _gcoCONTEXT has `physical` and
  `bytes` fields
- GCABI_HAS_MINOR_FEATURES_2: struct _gcsHAL_QUERY_CHIP_IDENTITY has
  `chipMinorFeatures2` field
- GCABI_HAS_MINOR_FEATURES_3: struct _gcsHAL_QUERY_CHIP_IDENTITY has
  `chipMinorFeatures3` field
- GCABI_USER_SIGNAL_HAS_TYPE: struct _gcsHAL_USER_SIGNAL has
  `signalType` field
- GCABI_HAS_CONTEXT: struct _gcsHAL_COMMIT has `contextBuffer` field
- GCABI_HAS_STATE_DELTAS: struct _gcsHAL_COMMIT has `delta` field