Fix definition of the CMAKE_CXX_FLAGS + linux fixes

As discussed in issue #42, the CMake buildsystem is broken on some systems because the project definition does not come at the beginning of the CMakeLists.txt. Because of this, CMake does not know that this is a C++ project and the CMAKE_CXX_COMPILER variable is empty, therefore the --std=c++11 flag is not added properly to the CMAKE_CXX_FLAGS.

@tomluchowski seems to say that moving the project definition to the top broke the his buildsystem, but I would be more inclined to think that something is wrong on his end then. Projects should always be defined at the beginning of the CMakeLists.txt IMHO.

This pull request also adds an insignificant change that makes my life easier to compile OD on Mageia: the FIND_SFML_LIB_SUFFIX is now listed as a CMake argument, and the proper include dir is searched for (Mageia packaged SFML2 so that it can be co-installed with SFML, hence some tricks).
I don't know all compiler flags but the ones I know :
-O2 is an optimisation flag. It should not be used in debug mode as it can optimize and make the debugger go crazy
-g is for adding symbols (when there is a crash, you can have a readable callstack)
-fno-strict-aliasing is an optimisation flag (don't really know what it does)
-Wxxx are for warnings (enable or disable)

Concerning the -g and -O2 flags, they should not be set in the global configuration. CMake will add them himself when you choose the executable type you want to generate (Debug, Release, ReleaseWithDbgInfo - pretty explicit)