repair unit_map unit tests

in an earlier commit these tests were disabled because they were segfaulting
and blocking the test suite from running. the cause was obscure: the tests
were based on making a dummy unit type and inserting / reinserting it
into the unit_map. however, it turns out that in the current code, a freshly
constructed unit_type is not safe to be used to construct a unit. the reason
is that then it does not have any genders defined, so when the unit is built
it will not find any genders and fail with segfault, or even more bizarrely,
a division by zero error. i found that even running with gdb did not give
an actual line number, and simply said that the failure occurred in the
unit constructor, a function whose initalizer list spans several pages.

the correct fix is to invoke "unit_types.build_unit_type" on the unit type
before using it. this permits the unit tests to run.

additionally i added an assert to the generate_genders function in unit.cpp,
which surely should have been there in the first place.
Merge branch 'master' of https://github.com/wesnoth/wesnoth