Add a python-like format function

With cool features useful for #404
New declension system, applied to language names

Delension only applies when a string is used inside another.
Therefore, I had to separate languages names that are used alone
from the ones that are used within sentences. Both support
declension.

Closes #404.
Switch from sprintf() to format() + small facto

Got rid of all these horrble %1$s, %2$d etc. in translatable strings
in favor of the new {0}, {1} or {anyKeyword} format() syntax. Also
factorized the result count display/format into a helper.
Reworded some messages to make them clearer.
Merge strings for easier translation.