Let the user set compilation flags

This change lets the user specify optimization (-O), warnings (-W) or debugging (-g) flags in either CXXFLAGS environment value or -DCMAKE_CXX_FLAGS_DEBUG and have them replace the standards that is baked into the build system, like in a plain CMake project.

It also lets the user disable whole program optimization (aka link time optimization) through the option WHOLE_PROG_OPTIM (or passing --disable-lto to ./configure).

If no options are specified, the build should proceed as before, so the impact of this change should be minimal.