Refactor the custom defines and includes plugin.

The compiler provider is not a plugin anymore, but a library that
is used in multiple places. In KF5, when the KCM is also not a
plugin anymore, we can merge all three together into one single
plugin .so.

For now, this move already simplifies the logic tremendously and
removes a lot of boilerplate code that was required to access
the CompilerProvider/SettingsManager from various places.

Note that the distinction between CompilerProvider and SettingsManager
is also pretty artificial. I plan to merge the two classes together
and futher clean up the code then. There is a one-to-one relation ship
after all between these two classes.

In addition to the above, I cleaned up the code wherever I noticed
any opportunity for that. There are probably more places for that.

CCMAIL: kalinichev.so.0@gmail.com