Couple of typos fixed
Use a std::list instead of a std::vector to store inventory items
Remove reference-mangling player::sort_inv() voodoo

Refactor the inventory sorting code so that it no longer mangles references (thanks to using std::list now).

Also move logic into the inventory and item classes, rather than being in player.

Note that inventory::sorted never seems to be *used*...
Improve readability of item sort code, stop flip-flops
Change inventory::restack to not mangle references
Unload no longer requires wielding the container/gun (closes #503)
Remove unused inventory methods "front" and "back"
Remove some calls to inventory::index_by_letter
Add some more inventory letter methods, remove more inventory::index_by_letter calls
Remove unused inventory::as_vector method
Remove inventory::stack_at(index), move some code into inventory
Fix massive slowdown when firing weapons/calling u_see

Well, thanks to profiling tools, I found out that u_see was calling has_artifact_with, which was using O(n^2) operations on the new list-based inventory. Move relevant code into the inventory class.
Locker and display rack construction
Altered mapdata.h for decon-tag to locker & rack
Fix so lockers and racks turn into t_floor
Change default wait key to "_"

IMO, it's silly to have the default wait key be one key away from the default craft key - makes it too easy to accidentally wait when you meant to craft. Especially given that you need to press "7" to exit the menu.
Allow esc to exit from menu() and menu_vec() (e.g., wait, use knife, etc.)
Added handling of iuse functionality to the item factory. Made mapgen code go through item factory to get templates, so json file entries are actually used here.
Use | instead for the default wait key - doesn't conflict with anything this time
Merge remote-tracking branch 'dda/pr/540' into dda-master