Tiled window layout

Adds some intelligence to how windows are "snapped" to a regular layout

Makes window tiling undo-able