Inventory letters are now cached by item type rather than by using item.invlet.

Also fixes a rather nasty bug, where items could get assigned to a letter already used by a worn item or the weapon.