Wrapped up the MS Memory cache behind an interface, so we can easily swap in and out Inmemory cache implemetations for pref testing.

Tested the Blocking cache, its fast. the the cache management code just doesn't work! Need to fix this.

Included C5 collections which implements a lot more collections we can play with.