Prepare TimeZoneInfo.cs for move to shared partition. (dotnet/coreclr#10606)
(This is the CoreRT side of https://github.com/dotnet/coreclr/pull/10606)
TimeZoneInfo.cs needs no changes but it brings in
another file CurrentTimeZone.cs.
Which drags in yet another file (Hashtable.cs)
which is widely used inside CoreCLR but aside
from this one file, it seems to be stuff that'll
will never be ported over or already has been
ported over sans Hashtable.
So we'll refactor the memoization logic of
CurrentTimeZone.cs into its own partial file
and share the rest. CoreCLR will use continue to use Hashtable.
CoreRT will use ConcurrentUnifier.
And while we're at it, will rename it to
CurrentSystemTimeZone.cs to match the actual class name.
Once we make a corresponding change on the CoreCLR side,
both TimeZone.cs and CurrentSystemTimeZone.cs will
be fully synced and can move to the shared partition.
Commit migrated from https://github.com/dotnet/coreclr/commit/
47931672c057514cac0db20534cee6fe89eb8027