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
Merge branch 'master' of https://github.com/wesnoth/wesnoth
fix whitespace
Merge branch 'master' of https://github.com/wesnoth/wesnoth
preprocessor: Capitalize first word of two error messages

Like all WML preprocessor diagnostics, these aren't translatable
strings, so this is a valid candidate for 1.12.
preprocessor: 'any argument' -> 'any arguments'

Like all WML preprocessor diagnostics, these aren't translatable
strings, so this is a valid candidate for 1.12.
Great Ogre unit for use in LoW.
First topic of an editor help section.
gui2/tmessage: Add missing standard padding around image cell
gui2/ttransient_message: Add missing standard padding around image cell
gui2/ttransient_message: Hide title and image widgets when unused

When the title or image widget labels are left empty, the widgets
continue to take up space in the grid, which is particularly conspicuous
with our current border,border_size=all,5 convention.

Commit 037ec6af8b307c20de860d670744deab309f7b23 exposes the underlying
problem quite clearly in most dialogs because the image widget's cell
takes up extra space to the left of the dialog while empty -- see the
Objectives popup for an example.

Hiding the relevant widgets when missing label values is trivial to do,
even if it requires additional boilerplate in the
gui2::ttransient_message case (no existing pre_show() method override),
so it should be a good solution as any until cell borders gain the
ability to become null when the contained widget is otherwise unused.

NOTE: I had to move the inclusion of gettext.hpp around a bit in order
to avoid name collisions with Boost headers introduced along with the
two new GUI2 inclusions in transient_message.cpp. The _ gettext
shorthand macro is truly a PITA to have near some of the most
complicated Boost libraries.
gui2/tmessage: Hide title and image widgets when unused

When the title or image widget labels are left empty, the widgets
continue to take up space in the grid, which is particularly conspicuous
with our current border,border_size=all,5 convention.

Commit b9b199f4f19a414813c28db68e903b9bb5306101 exposes the underlying
problem quite clearly in most dialogs because the image widget's cell
takes up extra space to the left of the dialog while empty -- see the
"you have not started your turn yet, do you really want to end your
turn" prompt for an example.

Hiding the relevant widgets when missing label values is trivial to do.
In the gui2::tmessage case it required a minor internal refactoring to
keep a find_widget<>() reference around for a second method call for
each widget. This should be a good solution as any until cell borders
gain the ability to become null when the contained widget is otherwise
unused.
updated Slovak translation
updated German translation