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).
Quote path arguments to opt/llc. Fixes #13603.
Fix a warning.
Avoid tail calls which breaks the test in finalizer-exception.cs.
Fix some cases of --debug=casts, add tests.
Workaround limitation of ancient nunit
Add null constant argument type check
Not currently referenced
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
Merge pull request #681 from tritao/dll-api

Added public API visibility macros
Variable has_ld was renamed
Fix the non-MSVC build.