Build OpenGL code only if requested
Cast the QObject passed as argument rather than sender

Should be the same object, but this looks better.
Destroy window representation when the surface is destroyed
Fix current workspace detection
Calculate initial window position

Application windows don't have an initial position, placing them
is a job for the compositor.
Separate workspaces logic from visualization

Logic is now moved to the Workspaces singleton and we have a linear
visualization which is the layer where we put windows.
Separate client and shell windows code

WaylandWindow is now a base type inherited by WaylandClientWindow
and WaylandShellWindow.

WaylandClientWindow is the component responsible for rendering
application windows, while WaylandShellWindow deals with shell
special windows.
Set initial position for transient and popup windows too

Requires the following patch to qtwayland:
  https://codereview.qt-project.org/#/c/89345/