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.