Second bundle of cool adjusments

I mostly cleaned up a few more parts of the code. I put all helper functions (`DELETE_SAFE`, `sqr`, ...) in the `func` header, while removing redundant definitions. All deprecated standard header files were replaced with their equivalent, proper header (`<cmath>`, `<cstdlib>`, ...).

I also optimized a few things in the engine's code, such as when creating a new texture. The OpenGL API supports passing a null pointer as the data argument to `glTexImage2D`, which will just allocate enough space in video memory for the texture. I've tested this and it works fine, although issue #3 still remains.

As for building, the CMakeLists will now trigger C++11 support in GCC by adding an appropriate flag if it is available (`-std=c++11` in the latest versions or `-std=c++0x`). Visual Studio supports C++11 without the need for additional flags (just as long as you have a reasonably modern version of it).

I ask you to look into the `isnan` function. Since it's officially defined in `std` as a function (and not as a macro), I discarded the macros that were translating it to `_isnan`, which really were not working over here. If there are issues here, we can just macro ourselves into a platform- or compiler-specific solution.