Remove .NET Standard 2.0 and .NET Core 2.1 build and test targets, because .NET Core 2.1 is no longer supported.
Add .NET Framework 4.8 build and test targets, conditional on Windows OS
Change various code to be compatible with .NET Framework.
Reduce test failures caused by unavailable crypto algorithms (ECDH, AES-GCM). The crypto tests specific to those algorithms will still fail, but other test cases will fallback to always-available algorithms. This reduces confusion about the cause for many test failures, particularly on Mac OS.
Update YAML build definitions to target the appropriate .NET versions.