Check return value of ShellExecuteExW instead of GetLastError

It's unclear from the MSDN documentation whether LastError is also
set if ShellExecuteEx succeeds. Therefore rather check for the
return value.

Task-number: QTBUG-31788
Change-Id: Id74377445c5e64a056d4f1c0ec6ae29b02a0d98e
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
Set SEE_MASK_NOASYNC when launching elevated process

Set the SEE_MASK_NOASYNC flag in the hope to fix the mysterious
"Couldn't get authorization" error.

This requires the platform API from MSVC 2007 or newer.

Task-number: QTBUG-31788
Change-Id: Ida254820e7c46e80bc2269531183c206c1fe2c8d
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>