Allow setting service-specific account settings via Account

Previously, service-specific account configuration values could only
be set via the ServiceAccount interface.  This commit adds API so that
the Account interface can now read and set service-specific settings
also.

In the latest libaccounts-qt (v1.4) better support for GVariant to
QVariant conversion was added, and so my hand rolled conversion
function is no longer required.  This commit removes that in favour
of using the improved API offered by libaccounts-qt in 1.4.

When setting service-specific settings, the enabled status of the
account with that service gets overwritten.  Thus, we need to enable
or disable the service after setting service-specific settings.

Finally, this commit also improves various unit tests related to
service-specific account settings and enabledServiceNames.
Allow sign-in via Identity as well as ServiceAccountIdentity

While non-privileged applications need to use ServiceAccountIdentity
to sign into a service, privileged applications shouldn't be required
to retrieve an instance of ServiceAccountIdentity to perform sign-in.
This commit adds the relevant authentication-related API to Identity.

It also adds sanitisation of input parameters when performing sign-on
related actions, to ensure that string array parameters generated in
JavaScript/QML are correctly converted to QStringList parameters.