[mdoc] Fix export-msxdoc regression, updated expected output.

Commit 44b2b4a8 completely broke `mdoc export-msxdoc` because
EcmaDoc.GetCref() was removed. Expected:

	<member name="C:Mono.DocTest.DocAttribute(System.String)">

Actual:

	<member name="Mono.DocTest.DocAttribute..ctor">

i.e. useless.

The fix: bring back GetCref(), this time within monodocs2slashdoc.cs.

Commit 0ad6ffde changed the HTML-generating stylesheet and moved some
@id attributes around, thus breaking the mdoc unit tests (expected
output likewise changed). Fix the monodoc XSLTs so that we don't emit
id="" attributes (id's with no value).

Update mdoc's expected output so that tests pass[*].

[*]: tests will NOT actually pass, as 04bf9add -- attempted fix for
an OS X stackoverflow caused by 3d3fe6af -- results in a gigantic
216MB diff because String.get_Chars() is repeated over and over and
over... The updated expected output in this commit is the "ideal"
update needed after locally reverting 3d3fe6af and 04bf9add.)
Avoid calling alloc wrappers directly, sgen does some initialization when the wrapper method is created.
Use a different function for emitting write barriers for gsharedvt types which can handle reference types too. Fixes #12429.
[mdoc] Fix unit tests.

3d3fe6af (among other commits...) "broke" the `mdoc` unit tests, as it
did two things:

 1. It added a new codepath calling string.Format(), thus introducing
    a new set of exceptions.
 2. Due to an `mdoc` bug, (1) resulted in a stack overflow on OS X.

(1) demonstrates that the mdoc unit tests might be too brittle.

(2) was fixed in 04bf9ad.

The problem with 04bf9ad, though, is that it resulted in a gigantic
~212MB diff, because while the recursion was "fixed", we could still
process the same method multiple times, resulting in _lots_ of
duplication, e.g. System.String.get_Chars() would be repeated hundreds
of times for a given exception.

Improve the source reporting mechanism so that instead of a
List<MemberReference> we use a HashSet<MemberReference>, listing each
source location _once_ instead of repeating them.

The _formatting_ of the <exception/> element is also changed so that
each source location is on its own line, making it easier to read and
review the locations.
Remove MOBILE defines inside X509Chain tests
[ios] Allow some level of configuration when CryptoConfig is used (as a last resort fallback)
Move the adding of unbox trampolines to mini_add_method_trampoline ().
Use gsharedvt for some generic instances in full-aot mode to avoid code blowup.
Avoid putting a duplicate -arch i386 into CPPFLAGS, it prevents ccache from working.
Fix a warning.
Remove the #ifdef HAVE_SGEN_GC dependency from main.c by using a separate main-sgen.c file for sgen.