Make qinisettings a base class and force all operations through class methods

I was resolving a bug and I observed that qbt source is littered with the use of qinisettings outside of the Preferences class even when a suitable method is already provided by the Preferences class. So I opted to make the qinisettings a base class and control access to the relevant files throught the appropriate class/method. This has the usual advantages:

* If a change is made for group/key in the settings file it will automatically be used by all callers of the method without the need to hunt down the different cases which access that particular key.
* Type safety
* Compile time checks
* Since the constructor of qinisettings is now protected the user will be forced to use the appropriate classes/methods and don't create a potential bug.
* Maybe more advantages, but now I am too sleepy to think.