[sgen-bridge] Implement type based dfs1 filtering.

Some types are statically known to never lead to a bridge. Objects like
string or int[]. By filtering them out very early in dfs1 we save memory by
not inserting them into the hashtable and reduce work done by all further steps.
Merge pull request #916 from akoeplinger/fix-gac-test

[MSBuild] Fixed a test that failed when the GAC wasn't available
[mono-api-html] Print string fields with no (or null) value without an NRE.
Revert "Revert "Merge branch 'master' of https://github.com/mono/mono""

This reverts commit 8f09dad4353bb75afebf96ad58d08f7e7f3bf56d.

8f09dad4353bb75afebf96ad58d08f7e7f3bf56d is reverting a merge commit,
which will not do what you think it does. It will revert much more,
so revert the revert to get back the unintentionally reverted commits.

It looks like the next commit (1a15d4ec541eaf20ed78eac53149b1b83e1450fe)
is doing the original intention (reverting 164f9cbec4f79cc013c7b1cf674e70e4573f4b36),
so this revert will leave the tree in a good state, with no pending
reverts.
[corlib] Fix extra await context switch when custom SynchronizationContext does not change. Fixes #17878
[sgen-bridge] Fix the bridge with forwarded objects.
Include support for SSL/TLS right in System when building for the MONODROID profile

This patch builds upon commit 96a8500795960ae1d9e81e28095c3e2dda303342 which placed parts of Mono.Security
responsible for dealing with SSL/TLS certificates for the purpose of certificate verification. The code enables
validation of the certifcates even if the user does not provide their own validation callback. The changes as related to
the original commit are few, basically consisting of enabling the same code used by MonoTouch in the MonoDroid context with
the only actual code change being the certificate validation bit mentioned above.

Since the change involves adding a subset of Mono.Security files to the monodroid version of System.dll, it is
also necessary to remove Mono.Android's dependence on Mono.Security.dll. The reason is that the code in AndroidPlatform
which looks up TLS support methods in Mono.Android.dll would use a type (X509CertificateCollection) that is now part of
System.dll but is *also* in Mono.Security.dll referenced by Mono.Android.dll and therefore the lookup would fail since
we'd have two distinct types from the reflection point of view.

Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=18962
[arm] Fix some native types issues.
[docs] Schema additions, and monodoc template updates.

- Expanded monodoc-ecma schema to support the 'preserve-mono' attribute, and the attribution tag.
- Added preserve-mono to several pieces of documentation that we would like to preserve across future automated documentation imports: CipherSuitesCallback, ServicePointManager, CultureInfo, Environment+SpecialFolder.xml
- XSL template changes for monodoc HTML generation to support <attribution>
[docs] Import of Microsoft BCL Documentation.
The documentation is creative commons licensed.
[docs] Minor update to monodoc html template.
Handles the case where a bullet list has only a paragraph rather than a term
Merge pull request #1006 from joelmartinez/msdoc-import

Import of Microsoft BCL Documentation
Merge pull request #1005 from ranma42/race-free-parallel-build

Use mktemp instead of $RANDOM to generate unique names
[xbuild] Add GetAssemblyIdentity task to Microsoft.Common.tasks
[MWF] Add unit tests for AutoSize behavior of FlowLayoutPanel
[MWF] Fix AutoSize behavior of FlowLayoutPanel (#2912)

A FlowLayoutPanel that has AutoSize set needs to resize if the
contained controls wrap.
Emit profiler enter/leave instrumentation calls as icalls.

This is more portable than using the mono_arch_instrument_* functions and
thus isn't prone to nasty arch-specific bugs. In particular, the old way
of instrumenting function prologues/epilogues resulted in a somewhat elusive
stack corruption bug on Android (ARM). Eventually, we should get rid of these
functions entirely and only use icalls, with JIT opcodes for special cases
(such as saving arguments for --trace).

This new way of doing things also makes profiler instrumentation AOT-safe,
since we're now going through the proper channels to emit references to the
runtime functions (mono_profiler_method_enter/leave) and to embed MonoMethod
pointers.

Since we're using icalls without wrappers to do this, there should be no
visible performance impact from this commit.
[Mono.Parallel] Removed broken Mono.Threading.Tasks code

The code in MonoTaskExtensions.cs relied on the internal method Execute(Action<Task>) in System.Threading.Tasks.Task which was removed in 0a66e60.
Merge pull request #961 from ermshiperete/bug-xamarin-18118

[System.XML] XSL bugfixes for #18118 #18114 #18113
[genproj] For Path.GetFullPath to work, we must use convert Windows paths to Unix paths