Don't create an invalidated surface when not needed

After invalidateSurface() is called we don't want to recreate
the EGLSurface on setGeometry() until makeCurrent is called

Change-Id: Ide10ecf3bff40a01fa1ed249986a631c77c2bf63
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Avoid virtual calls in constructors.

QWaylandWindow::setGeometry() is a virtual call and internally it
would call windowType() which is pure virtual, so calling it from
the constructor won't work.

Instead, set geometry explicitly from the constructor and call
setGeometry() on setVisible(true). This also merges it so we send
one expose event (with correct x/y offset) on geometry change + show.

Change-Id: I1d21664c982005c60c8d73740e43b3a463bac4a8
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>