[System.ServiceModel] Fixed Bug652331_2 test that failed on Jenkins by increasing timeout

Looks like the test takes quite a while so 10 seconds was just too short. Increasing the timeout to 20s seems to fix it.
Make the build in docs/ uses the net 4.5 profile.
Make mono_threads_pthread_kill available to mach targets.
[profiler] Fix signal based profiling to sample all registered threads.

The current signal profiling code depended on invalid linux behavior of setitimer
allowing multiple threads to register for the same timer. Linux kernel 2.6.12 fixed
this and only the main thread gets the signal. Always.

The correct POSIX behavior happens on OSX/iOS.

On Linux we could use timer_create and SIGEV_THREAD_ID but that would not work on iOS/OSX
since it's specific to it. Given that little detail, I'll leave implementing it as an
exercise to the reader.

The solution, which aims to be as portable as possible, is to use a pair of signals and
have the first one fire the second one against all other threads.

We use a pair of signals since it's not well defined which thread will receive the signal
so detecting this from the signal is non-trivial.
[profiler] Add new profiler API mono_profiler_set_statistical_mode that gives control to statistical mode and sampling rate.
[profiler] Expose new profiling modes and allow sampling rate to be set when using signal-based sampling.
[arm] Fix OP_LOCALLOC on arm so it correctly adjusts sp with the param area size even if the size is large. Fixes #24221.
Merge pull request #1387 from akoeplinger/improve-bug652331_2

[System.ServiceModel] Fixed Bug652331_2 test that failed on Jenkins by increasing timeout
[linker] blacklist System.Net.Sockets.MulticastOption fields

 - merge fix for https://bugzilla.xamarin.com/show_bug.cgi?id=21578
   the MulticastOption's 'private IPAddress local' field was
   removed by linker and the app crashed later at runtime.
 - when System.Net.Sockets.MulticastOption object
   is passed to System.Net.Sockets.Socket.SetSocketOption
   and thru it to System.Net.Sockets.Socket.SetSocketOption_internal
   it accesses passed object fields
   (thru few more native calls).
TZ display name changes no longer reset adjustment rules.
Reset of adjustment rules is mandatory when the base offset is changed because the rules are relative to the base offset.
Adjustment rules are now kept until the base offset changes.
Changed script DateTime.Now_Test.sh to use the compiled csharp.exe.
Revert "Disable building the NET 2.0 profile by default."

This reverts commit fe265502cc517e8374ce2988f31e88d4f3554d8a.

Revert this for now as it breaks too much stuff.
Install Mono.Cecil in the net 4.5 profile.
[runtime] Use a separate signal with the SA_RESTART flag set for suspending/resuming threads during debugging on android, since lots of android native code cannot handle the interruptions caused by the normal abort signal. Fixes #22968/#23987.
[xml] XmlElement.InnserXml seems to preserve whitespaces.

Fix for mdoc test regression (see commit comments on #661430f).
[Mono.Posix] consider nano time info in UnixFileSystemInfo.Last*Time.

Before this change, those Last*Time properties returned only based on
seconds (truncated), which could cause inaccurate time comparison.
Consider code like this:

var fileUpdated = DateTime.Now;
...
File.WriteAllText (path, "foobar");
...
if (fileUpdated > new UnixFileInfo (path).LastWriteTime)
   OnUpdatedFile (path);

This could always result in raising update event, even if there was
no update after writing.

Last*Time With milliseconds makes it very unlikely to happen.
Merge remote-tracking branch 'upstream/master'