Merge in select generics classes from genericsTake2. (#1406)
This cherry-picked merge is phase 1 of merging in support for generics. By itself, this code does nothing, but some changes to CClassType are necessarily not dark. Most methods stubbed, but some actually call in to the dark code, but should not be used yet. (commit: b8e6b8e)
This change adds GenericParameters to Function.exec. This is currently unused, but will be used once the genericsTake2 branch is merged in.
This is a backwards incompatible change in general, and extensions will not be able to recompile with this change in. However, the call sites for all uses of general exec have been updated to use reflection to fall back to the old 3 argument version if the new method call fails.
All core classes have been updated, which also necessitated changes to caller sites in some places as well. (commit: 75f73f1)