Inventory and Delay - refactoring, some core bug fixes

I have refactored the Inventory and Delay sub-systems to not use events for actions (deprecated the events, still will be working). No other system will ever listen to those events and they introduce unnecessary code, unnecessary layer of indirection and wastes CPU on figuring out listeners waiting for it.

I have also added an additional validation on multiple items passed to InventoryManager::removeItem.

Fixed two bugs in Engine/Core - invalid URI for pickaxe and incorrect method called by mistake, causing recursion.