Begin switching items to templates

Items are now of the form Item::Food<Item::BREAD>, rather than
Item::Food(Item::BREAD). This allows determining item type with one
dynamic_cast.
Finished Switching Items to templates
Updated unittests for new item representation