Throw OutOfMemoryException when allocation for Class, Object or Array fails.
Use custom GC_warn_proc to use our logging functions when logging GC warnings.
Better OOM handling. We will now run a GC and retry once if an allocation fails. If an OutOfMemoryError instance cannot be allocated because of OOM we will use a global instance with an empty stack trace to prevent infinite recursion.