Window snapping 2

This adds support for snapping and linked floating dock windows