[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.