Move checkInventory out of NPC update function

Instead of checking the player inventory on every update, it is more effecient to check only when an item has been added or removed and when the NPC first gets created in the level on the enter function.

This should resolve #2124.