add public to the definition of bad_lexical_cast
Add make_enum macros and a unit test, also add to project files
reactor make enum after gfgtdf's first set of changes
refactor make_enum to incorporate second set of changes
revise enum maker macros, so that they work with clang
refactor team to use MAKE_ENUM
make ostream operations inline, to prevent linking errors

Static is insufficient because we compile wesnoth into several
library components, and some of our enums end up in different ones,
so similarly to in util.hpp we must use inline to prevent linking
errors.
fixup team to match new syntax (squash this)