override config is stored only if isn't default

so that user who is using default configuration is always using the
version from project file, we want to store this user config only in case
that the user wanted to have it different from project config page
New class was created that contains the user override and every option
should be stored using it, however because the lookups are done using
QHash (which is fast but not as fast as direct memory access), some
values, that can't be changed runtime still do have own pointer.

User configuration are now stored only if they differ from project
configuration page. This needs to be intensively tested.