[corlib]String.IndexOf is culture aware, while String.Contains is not.
Implement the string allocator for sgen.
Enable managed allocation under gsharing.

We do that by using the NORMAL allocator instead of the SMALL allocator
as sizes might overflow at runtime.

The other change was to fix the GC api to take a MonoClass instead of a
MonoVTable.
When compiling gshared code, always use the cached isinst/castclass as it's faster than the cached one.