Added MONO_API macro to annotate and control visibility of public (exported) APIs.

This is especially useful for Windows since this way there is no need to maintain a separate .def file with exports which is usually out-of-sync with the latest revisions. This could also be used to control visibility with GCC/Clang so there would be no need for MONO_INTERNAL (could be removed while changing the default visibility to hidden).
Faster index lookup in RemoveInternal
Variable has_ld was renamed
Fix the non-MSVC build.
Put runtime-invoke wrappers of valuetype methods into a separate cache, they have a different signature.
Add support for constrained gsharedvt calls to IComparable<T>.CompareTo ()/IEquatable<T>.Equals (). Fixes #13704.