Implement side-by-side tiling

Patch by Florian Müllner for Metacity
https://bugzilla.gnome.org/show_bug.cgi?id=607694

When dragging a window over a screen edge and dropping it there,
maximize it vertically and scale it horizontally to cover the
corresponding half of the current monitor.

Whenever a "hot area" which triggers this behavior is entered, an
indication of window's target size is displayed after a short delay
to avoid distraction when moving a window between monitors.
Merge branch '1.7.0-window-snapping'
Fix drag over the top screen edge
tile-preview: Add GTK3 support
tile-preview: Replace gtk_window_set_visual with gtk_widget_set_visual