Add workaround for a bug in KWin

For some reason we can't seem to change the geometry of a window
during its signal handler.

So I used a QTimer to wait till the signal has finished processing
and then relayout the new window.
Improve shouldIgnore() function

It now ignores things like dialogs, as well as things that skip
the pager or taskbar.