Addressbook: create helper class for QSettings groups

This way, endGroup() will always be called when we are done parsing
the current contact.

When endGroup() is not called in the readAbook() method, entries after
the current entry are not correctly parsed so these contacts won't
show up in the addressbook.
Merge remote-tracking branch 'cschutijser/junk-3'
Fix copyright header for the AbookAddressbook

Thomas is the original author, Caspar spent a great deal of time polishing, and
I put it together.