Adding true support for multi user scenarios in the managers and making it more robust

I'm following the same pattern as I was using in ```DBOpenHelper```. Otherwise, we were running into problems with DB swaps in ```CacheManager``` when an account switch occurs, etc.