[sgen] Remove debugging printfs.
[sgen] Number of major objects marked in concurrent DTrace probes.

Can be enabled/disabled via #define in sgen-conf.h.  Disabled by default
because it's a small performance hit.
[sgen] Remove workers_gc_thread_data.

It's not used anymore.
[sgen] DTrace probes for finalisers and weak links.
Make weak links initialized to NULL before calling mono_gc_weak_link_add().

This has no effect, but the weak link DTrace probes don't get uninitialized
pointers anymore.
[sgen] Fix weak tracking links in concurrent mark.

This was broken because nursery objects were not marked pinned
at the time references were checked, so they were considered dead
and the links were nulled.

We solve this by not unpinning them in the finishing nursery collection
but instead leaving them pinned during the finish-up of the major
collection and unpinning them afterwards.
[sgen] Disable redirection to distribute queue after workers have stopped.
[sgen] Start the workers before pinning when concurrent.
[sgen] A few assertions.
[sgen] Define all dummy DTrace macros.
[sgen] Use SGEN_ATOMIC_ADD instead of doing it by hand.
[sgen] Just pass one struct around, instead of scan_func, copy_func and queue.
[sgen] Debugging code to check gray queue section's states.
[sgen] Mention marksweep-conc in the man page.
[monodoc] Look for docs in LocalApplicationData

Problem: At present, the MonoTouch installer merges MonoTouch
documentation "stubs" with the locally installed iOS documentation,
and installs them into
/Library/Frameworks/Mono.framework/External/monodoc. Since this
directory isn't world writable, you need to be root to do it.

Previously this wasn't a major problem ("just" run the updater as
root), but Apple is now suggesting the use of a setuid binary to do
this instead of privilege escalation:

	http://blog.neteril.org/blog/2012/12/06/a-better-monomac-privilege-elevation/

The problem is that setuid binaries are notoriously difficult to write
properly, and have a large number of ways to be exploited. This is bad.

To avoid this, we instead want to stick the merged documentation into
the per-user directory, which means the updater does NOT need to run
as root, we don't need to write the documentation to a protected
directory, and the security concerns are significantly saner.

This in turn means that monodoc.dll needs to be able to look for docs
in a per-user directory, thus this patch:

Update monodoc.dll to look for documentation in the directory:

	Path.Combine (
			Environment.GetFolderPath (Environment.SpecialFolder.LocalApplicationData),
			"monodoc")

(On OS X/Unix, this is ~/.local/share/monodoc.)

This is a per-user directory, writable by the user.
[sgen] Build fix.
fix code according to mono coding guidelines
fix code according to mono coding guidelines
Simplify a bit FULL_AOT_RUNTIME build wrt use of CommonCrypto. Ref: assistly #9858
Introduce support for unlimited trampolines.

With this new code there is no longer an AOT compiler limit on the number of
trampolines, as they are allocated at runtime as necessary on iOS systems.
We use iOS's ability to remap a page to a different address in memory
and we replicate the trampolines we generate in the binary file to a
location in memory near a writable page where the trampolines can find the
specific runtime data needed (basically building writable constant pools).
On a big app like bcltests, this saves more than 900KB of binary size.
There is still the option to use the old code, by passing the "nopagetrampolines"
option tp the AOT compiler (the new code is the default).