Complex.ToString must not pass format string to string.Format

Type: System.Numerics.Complex

IFormattable format strings and string.Format formats are different
and incompatible. For example, `x.ToString("G")` and `x.ToString(null)`
must be equivalent to `x.ToString()`, but they behave very differently
with string.Format, where the former just returns "G" and the latter
throws an ArgumentNullException.

Changes System.Numerics.Complex.ToString to pass the format string to
double.ToString instead of string.Format.

Adds UnitTests for the changes in new ComplexTest.cs file
Rework the gsharedvt code to add support for vtypes with arbitrary size.
Disable gc-altstack.exe on wrench until it is fixed (#12610).
Fix a typo in e5c45f1161604733b116a0a83782c08f74fb3127.
Fix a couple of warnings in appdomain.c and threads.c.
Eliminate the use of localloc in gsharedvt methods which have no gsharedvt locals.
Renamed target AssignProjectConfigurations to AssignProjectConfiguration (without the s) to better match .NET and other target files that call this target directly by name
Fix binding redirect version comparison. The old code would do the wrong comparison for the following case: oldVersion=0.0.0.0-4.0.0.0 and aname version 2.2. The major version is in range, but the minor was incorrectly considered out of range.