more efficient inventory handling

itemCount should not build a hashmap of all <items, count> just to
discard all but 1

geting multiple items by (doing a linear inventory search then pulling 1
item) x n is not a good algorithm - up to count*inventory slots excess
work.

new code also handles _hideOnePerStack and _hideOne.