Enable and fix addition warnings (-Wextra). Disable unknown pragma warning (avoids messy wrapping pragmas in compiler guards). Tidy up some of the waring suppression for 3rd part libraries by wrapping with a header.
The std::string in InstructionInfo triggers a bug in Visual Studio 2013 where it fails to initialise the strings in c_instructionInfo. Using char const* fixes the problem, and is sufficient as the map is constructed from string literals anyway. I also moved the maps out of the header so we only get one copy, rather than multiple static copies for each referencing module.