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.
Merge branch 'master' into add_item_manager
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.
Added ability for item manager to read in item from file and create it.
Remove unnecessary const qualifier.
Rearange intialization order of parameters to make compiler happy.
Misc warning cleanup in field.cpp.
Cleanup misc warnings in monmove.cpp
Make multiple types of ammo stop freaking out item examination

Whoops, introduced this bug with my action hinting code.
Warning cleanup and style changes in game.cpp.
Remove unused variable.
Remove unused variables
Warning cleanup.
Fully parenthesize logic statements.
Remove some unused variables.
Fully bracket some expressions to avoid ambiguity.
Actually apply move penalty for getting a weapon stuck in a monster.
Rearange tileray struct initialization to make the compiler happy.