Implement GC bytecode validation in loader stage, except for opcode
let and and func.bind. Pass the related spec cases.
And implement some GC object related APIs.
The source code may be not so elegant, we will optimize it in the future.
Import basic codes of GC feature:
- Add basic GC related macros, data structures and APIs
- Change WASMType to WASMFuncType/AOTFuncType and re-org interp/aot codes
- Import GC opcodes and add empty opcode handling in loader and interpreter
- Implement type section loading to resolve func/struct/array type
- Implement is_subtype_of for func/struct/array, implement struct field offset calculation
- Add -G option for test_wamr.sh to test GC spec cases
Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>