Added performance counter "Available Physical Memory".
Performance counter "Available Physical Memory" return the current
amount of ram that is not in use.

This was added to be used by System.Runtime.Caching .NET integration
that relies on the available system memory to resize the cache.
[System.Runtime.Caching] Copied R.Designer.cs from .NET
We will be using this version of R.Designer.cs with hard coded strings until Mono has access to .NET resources.
[System.Runtime.Caching] Copied SRef.cs from .NET.
.NET was using this to retrieve the size of an object graph, by using special logic on its GC.
This version of SRef is not doing that, because Mono does not provide that kind of computation.
As the changes that the GC would require to support this are not trivial, SRef returns a wrong size for now.
Known problems:
   - CacheMemoryMonitor does not trim the cache when it reaches its memory size limit.
   - IMemoryCacheManager.UpdateCacheSize is called with incorrect size.
[System.Runtime.Caching] Implemented referencesource missing classes.
Implemented classes UsageEntryRef, CacheUsage, ExpiresEntryRef and CacheExpires.
[System.Runtime.Caching] .sources now uses referecensource files.
[System.Runtime.Caching] Updated tests default PhysicalMemoryLimit.
MemoryCache.PhysicalMemoryLimit default value is now 99 instead of 98.
[System.Runtime.Caching] Updated MemoryCacheTest.TestCacheSliding.
Changed sliding expiration timeout from 1 second to 2 seconds.