[pcl] Complete System.Runtime.InteropServices facade
[mcs] Private fields of structs can have type of another private not imported type
[sgen] Add an optimized variant of qsort using macros. This is 4x faster on sgen-bridge.

The macro produces a custom version of qsort that doesn't use memcpy or a function pointer.
[sgen] Remove the elem_size field from DynArray - explicitly pass it instead.

This reduces the size of DynArray from 4 to 3 words. Small perf gain.
[sgen] Cleanup argument list of dfs1, src is a constant.
[sgen] Wrap DynArray into strongly types variants making the code cleaner and safer.

This paves the way for having different number of objects inline.
Add -fwrapv to gcc/clang flags.

We rely on signed overflow in many places (in particular for *detecting*
signed overflow), so we need to tell GCC and Clang to not perform any
optimizations that rely on it being undefined.
Remove now-unused dyn_array_ptr_set () function.
Add/update some .gitignore files so that a clean build + `make check` results in a clean repo.
Silence a gcc warning.
Add an assert to sgen-hash-table.c!rehash_if_necessary () to make GCC at -O3 shut up.
Convert asserts in sgen-hash-table.c to SGEN_ASSERT ().
Add some pointless zero initializations to shut GCC at -O3 up.