Rework Linux/Kerberos native interop layer (dotnet/corefx#38377)
The latest changes to the System.Net.Security.Native shim layer fixed a lot of important
bugs for Linux Kerberos usage. But this created a new problem since SqlClient ships
in out-of-band NuGet packages separate from the .NET Core runtime. SqlClient builds
out of the CoreFx repo and uses the common source includes for Kerberos authentication.
This created an unexpected dependency on the System.Net.Security.Native shim layer.
The recent changes to these API signatures caused problems with different combinations
of SqlClient NuGet packages and .NET Core 2.x versus .NET Core 3.0.
After discussion with the SqlClient team, we decided to rework the changes to these
native APIs so that they would remain compatible across all .NET Core versions.
Long-term, the plan is to implement dotnet/corefx#36896 to expose a Kerberos API in .NET Core which
could be used by SqlClient and other consumers.
Closes dotnet/corefx#37183
Closes dotnet/corefx#25205
Commit migrated from https://github.com/dotnet/corefx/commit/
7f920b2984a97ce8643bc8e64a93e7bd4d8a059e