small refactor of strict mode logging

Move a bool flag that remembers if we threw an exception, to be a
local static variable in that function, rather than at file scope.
This ensures that no other functions will mess with it.
rename builder.cpp -> terrain_builder.cpp

Since that's the class that it defines.
bad_lexical_cast derives from std::exception
catch bad lexical casts (from parsing map locations from configs)
add map_location characterization tests

There is a compiler option to generate the expected output set for
the current build, see test_map_location.cpp