[threadpool] Add suspend pushing to a WSQ
[threadpool] Add heuristic to approach the optimal number of threads
[threadpool] Remove process_idle_times so monitor_thread is the only function to change the number of threads
[threadpool] Put the monitor thread to sleep if there has been no tasks for the past 5 seconds (NON_BUSY_INTERATION * SAMPLES_PERIOD)

This should improve a lot power consumption, because this avoir having a thread waking up every 500ms keeping the CPU awake.
[sgen] Fix pointer access.

Thanks to @martinpotter for finding the bug.
Added missing files to projects csproj files.
Merge pull request #1179 from ludovic-henry/pr25-threadpool

[threadpool] Improve heuristic to approach optimal number of threads based on workload
[MWF] Pass graphics when calculating button text and image

This fixes a problem with calculating the text width of a button
which caused the text to get truncated under certain circumstances
instead of being wrapped. This fixes Xamarin-23168.

Change-Id: Iac0d8a2720a99cf5433e05d5123a04c4b019e493
Merge pull request #1328 from vkargov/master

[runtime] Take correct domain information from StackFrameInfo for each stack frame.
[runtime] Factor out some duplicate code from the MonoJitInfo creation code.
[runtime] Move the MonoJit/MonoJitInfoTable code to a separate file from domain.c.
Test HttpQSCollection.ToString url encoding. Covers #22557.
HttpQSCollection.ToString now url encodes values. Fixes 22557.
[System.Core/Android] Fix standalone unit tests.

Commit 5564dad1 broke the self-test (for testing on the developer
machine, not an Android target). Fixup the comment so that appropriate
data is grabbed and used for testing, and improve
AndroidTimeZones.GetDefaultTimeZoneName() so that the default timezone
ID can be specified via the __XA_OVERRIDE_TIMEZONE_ID__ environment
variable for testing.

Finally, demonstrate TimeZoneInfo.GetUtcOffset(DateTime) use so that I
can get better insight into the timezone data stored within the
database:

	$ __XA_OVERRIDE_TIMEZONE_ID__=America/New_York ANDROID_ROOT=`pwd` ANDROID_DATA=`pwd` mono --debug tzi.exe --offset=1969-01-01
	Using DateTime Offset: 1/1/1969 12:00:00 AM
	DB type: System.AndroidTzData
	name=Africa/Abidjan                           Africa/Abidjan                          From Offset: 00:00:00
	name=Africa/Accra                             Africa/Accra                            From Offset: 00:00:00
	name=Africa/Addis_Ababa                       Africa/Addis_Ababa                      From Offset: 03:00:00
	...
Merge pull request #1327 from ermshiperete/Xamarin-23168

[MWF] Pass graphics when calculating button text and image
Merge pull request #1329 from esdrubal/httputility

HttpQSCollection.ToString now url encodes values.
[jit] Reduce code duplication in the inlining code.
[threaddpool] Fix deadlock in thread pool with monitor thread

Because the monitor thread was not marked as background thread, remove_and_abort_threads (threads.c:2807) would mark it as needed to be waited to shutdown the runtime, and wait_for_tids (threads.c:2652) would then wait indefinitely for it to finish. The issue was that the monitor was waiting on the semaphore monitor_sem, and thus would never exit.

Thread 7 (Thread 0x1c13 of process 99776):
#0  0x00007fff86590a56 in ?? () from /usr/lib/system/libsystem_kernel.dylib
#1  0x00000001003cc03a in mono_sem_wait (sem=0x1004f7f50, alertable=0) at mono-semaphore.c:103
#2  0x00000001002cef41 in monitor_thread (unused=0x0) at threadpool.c:898
#3  0x00000001002cb78f in start_wrapper_internal (data=0x10500abf0) at threads.c:657
#4  0x00000001002cb4a1 in start_wrapper (data=0x10500abf0) at threads.c:704
#5  0x00000001003d61d4 in inner_start_thread (arg=0x7fff5fbfe500) at mono-threads-posix.c:84
#6  0x00007fff8e7c9899 in _pthread_body () from /usr/lib/system/libsystem_pthread.dylib
#7  0x00007fff8e7c972a in _pthread_start () from /usr/lib/system/libsystem_pthread.dylib
#8  0x00007fff8e7cdfc9 in thread_start () from /usr/lib/system/libsystem_pthread.dylib
#9  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x1503 of process 99776):
#0  0x00007fff86594716 in ?? () from /usr/lib/system/libsystem_kernel.dylib
#1  0x00007fff8e7cbc3b in _pthread_cond_wait () from /usr/lib/system/libsystem_pthread.dylib
#2  0x000000010039cfaa in _wapi_handle_timedwait_signal_handle (handle=0xa55, timeout=0x0, alertable=1, poll=0) at handles.c:1595
#3  0x000000010039d03d in _wapi_handle_wait_signal_handle (handle=0xa55, alertable=1) at handles.c:1540
#4  0x00000001003b7ba3 in WaitForSingleObjectEx (handle=0xa55, timeout=4294967295, alertable=1) at wait.c:194
#5  0x00000001003b865d in WaitForMultipleObjectsEx (numobjects=1, handles=0x7fff5fbff1f8, waitall=1, timeout=4294967295, alertable=1) at wait.c:516
#6  0x00000001002c75df in wait_for_tids (wait=0x7fff5fbff1f8, timeout=4294967295) at threads.c:2658
#7  0x00000001002c70e5 in mono_thread_manage () at threads.c:2951
#8  0x00000001000d551b in mono_main (argc=6, argv=0x7fff5fbff9e8) at driver.c:2021
#9  0x0000000100001bd1 in mono_main_with_options (argc=6, argv=0x7fff5fbff9e8) at ./main.c:91
#10 0x00000001000017d3 in main (argc=6, argv=0x7fff5fbff9e8) at ./main.c:122
[tests] Add tests for Bug #23058 and polymorphism/known types in DataContractJsonSerializer.
[bcl] Implement KnownTypes for DataContractJsonSerializer. Fixes #23058 and polymorphism support.
Also discarded old __type hint behavior in JsonSerializationReader that potentially allowed any loaded type to be instantiated.