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] 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
Implemented overloaded versions of Parse and TryParse functions for BigInteger.

Implementation is heavily inspired by Int32.
Added unit tests for the new functions.
Merge branch 'BigIntegerParse'
[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
[numerics] Fix type in Cosh
[jit] Fix a regression introduced by b3f36681c72a6900cd5e9df9b593d555b351669f.
Merge remote-tracking branch 'upstream/master'
Cleanup and better comment.
Implemented DaysInYearBeforeMinSupportedYear for all Calendars that should have it in .Net 4.5
[corlib] Fix implementation of Tuple hash generator

The Tuples.cs code generator dies with:

Unhandled Exception:
System.NotImplementedException: The requested feature is not implemented.
  at TupleGen.computeHash (Int32 destVar, Int32 start, Int32 count) [0x00000] in <filename unknown>:0
  at TupleGen.WriteHash (Int32 destVar, Int32 start, Int32 count) [0x00000] in <filename unknown>:0
  at TupleGen.Main () [0x00000] in <filename unknown>:0

This is caused by the incorrect definition of WriteHash(), which
instead of recursively calling itself is calling computeHash().

Thanks to Marek Safar for reporting the issue in
https://github.com/fsharp/fsharp/issues/188#issuecomment-34351850