Fix some npc bug

Update npc functions to use the item position system, not the invlet. Should erase some invlet related bugs.

Might fix bugs like #4137 and #5501 (which seems to be a duplicate of the former).
Might also fix #2956, as passing an invlet to `player::consume` will not be correct most of the time.