Update projects to .NET Core 3.1
This updates the projects to .NET Core 3.1 (.NET Standard 2.1), including various C# language improvements.
It also updates the build scripts to resolve the packaging bug ZILF-217, which reproduced more reliably after updating to .NET Core 3.1.