Refactoring Inventory related classes. InventoryManager has now only read-only methods, all the write actions have to be done by sending one of the action events: GiveItemAction, MoveItemAction, RemoveItemAction, SwitchItemAction.
Validation of input can be done on inventories via BeforeItemPutInInventory and BeforeItemRemovedFromInventory, which if consumed - will cancel the operation.
Bugfix for ItemCommands.
Introducing instigator into the action classes to allow better validation of adding, removing elements to/from inventory.
Merge pull request #925 from MarcinSc/develop

Improved inventory by moving to a more event-based approach.