Changes in Inventory class:
 - Added itemClass property, a class instance that all items in the inventory are instances of
 - Constructor takes an itemClass argument (default is KitchenItem), file_ argument removed
 - Updated methods to typeCheck with the itemClass property
 - Inventory.forget can now take str type like Inventory.get

Changes in InventoryModel class:
 - Created _TreeItem class, used to structure data from the inventory instance
 - Rewrote most methods to use the _TreeItem class
 - Now updates when an item is added/removed from the inventory

TODO
 - Finish InventoryModel.__modifyItem slot
 - Rewrite InventoryWidget to use InventoryModel