signond: don't attempt demarshalling an invalid QVariant

Under Qt 5.2, casting an invalid QVariant into a QDBusArgument returns
a QDBusArgument set in write-only mode: attempting to extract its
contents leads to a crash:
https://launchpadlibrarian.net/162108956/buildlog_ubuntu-trusty-amd64.signon_1%3A8.55%2B14.04.20131212-0ubuntu1%2Bqt52~test1_FAILEDTOBUILD.txt.gz
Merge from upstream
Fix tests for Qt 5.2

Merge from upstream. Fixes: https://bugs.launchpad.net/bugs/1156776, https://bugs.launchpad.net/bugs/1237782, https://bugs.launchpad.net/bugs/1258578, https://bugs.launchpad.net/bugs/1267805.

Approved by PS Jenkins bot, Ken VanDine.