convert tiling and mutter_window modules to typescript
convert all remaining modules to typescript
added notification for errors when shellshape_debug=1
typescript refactoring
fixes
.
clean up a bunch of state handling code, and hopefully fixed a few mismatches
refactor prefs
fix indexing out of bounds workspaces
manage window position via Rect, rather than individual x/y/w/h numbers
avoid calling workspace.index(), it crashes the shell when called on a removed workspace
fix dumb for loop error
fix a couple glitches during extension deactivation
run paranoia checks only when SHELLSHAPE_DEBUG=1, and make bound_signals mandatory
fix for accidentally removing all workspace signals on window removal
clean up excess on_window_added calls (for Desktop, etc)
retain window / workspace state on disable(), and restore on enable(). second attempt at fixing #107
move connect_and_tract / disconnect_tracked_signals methods into Util module
stricter types on callback functions
big type cleanup; added compile-time check to ensure `this` isn't used in anonymous functions