a small fix for net45wp8profile compat, rwlockslim usage

the version of the cache in this commit uses rwlockslim. Note that certain ops will :camera: the values before doing stuff with it. 

The previous cache implementation had only locks on a write operation, hence I am somewhat surprised that enumerating cache etc. never :boom: in the kind of modified collection exception way . If there are some hidden secrets (like in the way the cache is used) that manage to avoid this scenario, then the question is **why bother** :question: .