[Qt] catch Windows shutdown events while client is running

- prevents unsafe shutdowns on Windows, which is known to be
  able to cause problems with wallet.dat
- if a users ends a Windows session, this will initiate a client shutdown
  and show a Windows dialog, that tells the user what is going on (for
  Windows Vista and higher it will even show a reason for blocking the
  Windows session end)

Limitations:
- needs Qt5 and just covers Windows

Fixes #4036 at least for Qt and Windows.