[build] System.Configuration: fix signatures.

We must use the secxml library directory to reference System, not
bare.

The bare build does not contain a full signature for some interfaces
(there is a using XmlNode = object in a few interfaces that
System.Configuration depends on).

So System.Configuration must reference the System that has been
compiled with XML support.
[xbuild] Add string to char[] argument conversion
[xbuild] Add missing apis
[mcs] Add handling for special case cref types/members
[System.Net.Http] Parsing productinfo like headers with missing version. Fixes #19881
[MS.Build] now ITaskItem impl. in BuildEngine4 behaves consistent with MS.Build.Tasks.

To be precise, now the implementation returns ItemSpec for ToString().
WriteLinesIntoFile task writes ITaskItem[] lines into a file, without calling
ItemSpec.
Maybe it is better to fix Tasks.dll but I'm unsure about xbuild compatibility.

This missing ToString() override caused target framework monikor output
to become invalid source file (i.e. it used to write ItemSpec as code(!) but
this ITaskItem impl. in BuildEngine4 just wrote its type name as .ToString()
result).
[MS.Build] add "OS" _undocumented_ predefined property.

It is used by Xamarin.Android to determine which compiler to use (csc or smcs)
and lack of this property simply caused Csc build task failure.