Implement Drag & Drop for Tiling Operations
This allows the split views to be dragged around the current tab by their headers. It also implements a toggle button to maximize/restore each view.