only remove items you wish to use.

do not remove items when creating a StackPointer.
Items in the act itself are used as normal.
Missing are grouped so that the external inventory is only searched once for any given item.
If this is not done, then 1 wood in an external chest could be used twice when crafting sticks.

items are removed only after every items has been found.

code should be faster when pulling multiple copies of the same item from external inventories.

made getNearbyItemFromOrientation private and removed removed dead code function calls.

reset pointers isn't ever used, because pointers don't hold real items until called upon.