OnInventoryObjectRemoved is no longer called while holding a lock on Items
Moved inventory caching logic into its own InventoryCache class. Inventory interface not impacted by this change