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).
Add support for value types to mono_object_to_string

The current mono_object_to_string implementation does not support value types. This patch adds support by unboxing value types prior to calling mono_runtime_invoke.
Not currently referenced
Fix remaining constant issues
Revert "Add null constant argument type check"

This reverts commit 01697c1f78482c2ee4782823327e4737f4f261dc.
Add better diagnostics for invalid properties
[sgen] Honor `--disable-major`.
Fix enum->int unbox casts in gsharedvt code. Fixes desk #42463.
[sdb] Improve some sdb logging messages.
FullAOT fallback: Slightly better random
configure: Fix arch selection for s390x.
Faster index lookup in RemoveInternal
Merge pull request #722 from JulianHamilton/master

Faster index lookup in RemoveInternal
Revert "Add class DnsPermission"

This reverts commit c3d818e1ba934268f5603d6773d3eda2380929e3.

The class is already part of the System assembly.  I mistook the
namespace as the Assembly name.
Merge pull request #681 from tritao/dll-api

Added public API visibility macros
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.
Fix cross compilation to windows. "Windows.h" should be "windows.h". Fixes #13729.