Added an Item_manager class, and the global item_controller to reference it's only instance.

It is fully initialized as part of game.cpps initialization step, and doesn't do much for the moment aside from providing another way to access the same information already accessed through the itypes map. However, it lays the groundwork for additional changes.

To insure proper functionality, calls to itypes in wish.cpp now use the new item_controller.
Merge branch 'master' into add_item_manager
Added the ability to ask the itemm_controller for a random id or itype from a group.
Starting npc spawn is Y.
Added reset_npcs function. Added currently active npc's %nr to debug feature. Removed unused code. Changed the way freshly spawned npcs act.
Added comments to npc.cpp
Added comments to npc.h (trying to figure out/document how it all works).
Added missing text to npctalk.cpp. (minor bugfix).
Merge branch 'master' into add_item_manager
After death/suicide the npcs/factions, artifacts, and overmap and local map are saved now. (was not done before, some of this data gets deleted later when the character specific save is deleted).
Splitted some of the save() functions out to separate functions.
Changed the debug 7 function, all the active npc locations are now shown as messages.
Added minor comments at places.
Changes to item_manager. Added consts where possible, some more randomized access options, and swapped the test in npc.cpp for one in mapgen.cpp

The new options allow you to draw either a random id or random template from a group tag. Also nested those properly to avoid code duplication.
The last bit was thanks to the fact that the number of npc bugs makes it ineffective as a test... and there's no way to see if it even works.
Updated the cleanup to not save everything when it has already been saved. Pushes the cleanup npc's to the omap, removes them from the active list to prevent teleportation.
game::load now also runs update map, to correctly get all the inactive npcs.
Wish prompt has hint to search function added.
Added ability for item manager to read in item from file and create it.
Symbol loading works properly, shuffled a few things around.
Couple of typos fixed
Option to set number of days in season
Expanded the item loading system to handle materials as well, and added a melee file with a HATCHET.
Merge branch 'master' into add_item_manager
Added actual item creation methods to the manager.
Separated phases of matter from materials
Merge remote-tracking branch 'upstream/master' into phases

Conflicts:
	player.cpp
Fixed typo
Fixed crafting of drinks
Fixed bracket issue caused by merge conflict