Add ::window() and ::approachWindow as virtual methods to Edge
This allows to no longer needing to dynamic cast the Edge to WindowBasedEdge for the X11 specific event handling.