Spaces Support

Added spaces support without using private APIs along with a variety of bug fixes.

* Added hotkeys for moving windows between spaces.
* Use subroles to ignore irrelevant windows.
* Fix a variety of positioning and sizing bugs.
* Fix a memory leak on destruction of windows.
* Some other minor things.