Convert blocking operations in HttpWebRequest and SslClientStream to non-blocking operations. This fixes #15451.

More details:
  * HttpWebRequest now writes the HTTP request headers asynchronously. This will avoid blocking a thread pool thread until the headers are written.
  * SslClientStream was doing the TLS negotiations in a blocking manner. Converted the negotiation method to an async state machine where all operations are done asynchronously.
  * The test case identified in #15451 now completes quickly with less than 15 threads created, vs. 100s of threads used before this fix.

Future work if needed:
  * I did not convert SslServerStream but the same pattern could be used here.
  * SendAlert is still blocking. I thought it was not worth converting it to non-blocking.
[corlib] Cleanup ThreadLocal output formatting.
[corlib] Better recovery when tasks run on broken scheduler
[corlib] Fix some AssemblyName tests
[corlib] Cleanup type ToString formatting.
Fixes build
[runtime] Filter out events with same name
[mcs] Tests update
[runtime] Put back ensure_synch_cs_set () which was removed in a157ac79e8f404f0eb9b263f5de697f13528deec to work around some shutdown crashes.
[corlib] Harden CustomAttributeData::GetHashCode
Revert "[runtime] Don't pass SEE_MASK_NOCLOSEPROCESS to ShellExecuteEx as we don't care for the launched process. Part 1/3 of Bug #16119."

This reverts commit 6c06d109952acb28a8198dcf85a6e8f4d4393985.
[System] Fix process creation when UseShellExecute is set to false.

This fixes the behavior of process spawning when UseShellExecute is
set to true.

The right behavior is to return no process only when we used the system
launcher. So, spawning /bin/cat should behave in the same way independent
of how UseShellExecute is set.
Fix serialization issue

Fixes BXC 5667 - SerializationException: The object with ID 1 could
not be resolved
Merge pull request #889 from slluis/serializer-fix

Fix serialization issue
[corlib] Update fixed test
Fixes build
[corlib] Default comparer uses IComparable interface only
[corlib] Fixes formatting of nested tuples
[corlib] Make primitive types smaller than int compare result compatible
Merge pull request #829 from symform/httpwebreq-async-ssl

Convert blocking operations in HttpWebRequest and SslClientStream to non-blocking