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).
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.
Fix bug #13485: retrieve private fields and properties in serialization.
Merge pull request #723 from alesliehughes/master

Revert "Add class DnsPermission"
Don't show internal error when default paramater expression cannot be converted to paramter type. Fixes #13682
Fix log messge.
monotouch requires DISABLE_COM too.
[sgen]Add some comments on the usage of all STW related fields.
[sgen]GC fight club rules. NEVER poke the managed heap if you are not supposed to.
Fix thinko in last commit. It's DISABLE_COM and not DISABLE_REMOTING.
implement character validation methods in XmlConvert. Fix bug #11910.
[sdb] Improve logging a bit.
[llvm] Avoid adding methods which failed llvm compilation to 'mono.function_indexes'.
[llvm] Disable LLVM for async methods to work around #13734.