Rewrote debugging output facility

In order to reduce code duplication, std::ostream is used through
a thin preprocessor interface. By this, the debug stream is run-time
configurable (through environment variables) and can be permanently
disabled at compile time.

The compiler optimizes out the code if permanently disabled. If disabled
in run-time, there is one if per debug statement, so it is rather cheap.
Replaced std::cout by our own debug facility
Moved all C++ sources to the src/ subdirectory

Now, when the game files are added to the project, the root
project directory is cleaner, since the separation between
C++ sources, graphics and campaigns is more obvious.