System.Runtime.Caching integration changes

Added Mono config variables  __MonoEmulateOneCPU and __MonoTimerPeriod, used by some tests.

Removed UnsafeNativeMethods calls on Mono.
 - MEMORYSTATUSEX usages were replaced with performance counters  "Total Physical Memory" and "Available Physical Memory"

 - SafeRegistryHandle.ReleaseHandle is only called on code that is ignored on Mono.

 - Mono is using AppDomain.FriendlyName directly instead of UnsafeNativeMethods.GetModuleFileName.

Performance counter "Available Physical Memory" will be added to mono in an upcoming pull request.