Add basic support for generating API documentation using Doxygen

If CMake is run and Doxygen is found, add a make target called "doc",
which builds API documention in doc/html. This target is not included
in the default "all" target, you have to explicitly run "make doc" to
generate the documentation.

If graphviz is installed, in particular, if the "dot" binary is found,
doxygen is configured to generate various kinds of diagrams. Note that
due to this, the first run of doxygen can take a while.
Use std::string::empty() instead of size() where applicable
Log: Silence errorstream during unittests
Fix MSVC compiling warnings and remove an unused texture
Fix missing call to std::ostringstream::str
Update Italian translation
Update Russian translation
Update po files
Display serverlist flags as icons
Remove vertlabels from main menu and relayout a bit
Fix segfault when dragging mouse out of mainmenu window (#1910)
LuaPerlinNoiseMap: Fix 3d noise safety check
Update german translation
Provide more info if a subgame is not valid/found
Fix misleading error when exiting the client from the main menu
Revert "Update Russian translation"

This reverts commit e4e4324a30d6bcac5cc06c74e955e4941b14bd38.

Conflicts:
	po/minetest.pot
	po/*/minetest.po
Fix background of creative icon (was black, now transparent)
Noise: Don't assume Noise is used for 2D unless gradientMap2D is actually called