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