Make it avoid unwanted windows

I.e. special windows (like plasma-desktop) and windows on other
desktops. It does so by keeping its own list of clients instead
of using workspace.clientList() every time.