Gamma correction (and some cleanups)

Added gamma correction (like on your screen) to `--increase` and  `--decrease`. This can be enabled by `--gamma`, which makes it backward compatible. Gamma correction is useful for turning a loud output fast quieter while being still able to adjust a quiet output with the same degree of accuracy as for loud outputs. This also reflects the human perception.

While implementing this feature, I also broke the classes apart into separate files, promoted the compiling process to a more strict and C++11 compatible one and made the make file use more of the make defaults.