* move all OSPlatformAttributes to a single file so they can be easily referenced in < .NET 5 libraries
* Adds System.Runtime.Versioning*Platform* annotation attributes to < .NET 5 builds
* introduce MinimiumSupportedWindowsPlatform
* introduce IsWindowsSpecific setting that adds MinimumOSPlatform attribute for Windows Specific libraries
* mark all Windows-specific libraries as such
* annotate Windows-specific System.Console methods and properites
* annotate Windows-specific DpapiProtectedConfigurationProvider type
* annotate throwing Windows-specific APIs from System.Diagnostics.Process namespace
* annotate throwing Windows-specific APIs from System.IO.MemoryMappedFiles namespace
* annotate Windows-specific APIs from System.IO.Pipes namespace
* the new attributes should support enums
* annotate Windows-specific APIs from HttpListenerTimeoutManager class
* annotate Windows-specific APIs from System.Net.Sockets namespace
* annotate Windows-specific APIs from System.Runtime.InteropServices namespace
* annotate Windows-specific APIs from System.Security.Cryptography.Csp namespace
* annotate Windows-specific APIs from System.Security.Cryptography.X509Certificates namespace
* annotate Windows-specific APIs from System.Threading namespace
* address code review feedback: dont introduce new constants, reuse existing SYSTEM_PRIVATE_CORELIB
* code review: import the namespace, simplify the attribute name
* add missing Socket.DuplicateAndClose and Socket(SocketInformation)
* fix the test name (it does not throw)
* add missing DriveInfo.set_VolumeLabel
* add System.IO.FileSystem File Encrypt and Descrypt methods
* simplify the < .NET 5 check
* enable nullable in explicit way as it's not enabled in all the projects where this file is included
* include platform attributes in projects that ask for it in explicit way
* set IncludePlatformAttributes to true for projects that include files from other projects
* use suggestions from Viktor and Santi
Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>