Don't remove observers that were never added in the App Delegate

Not that it matters—if the app delegate's dealloc is called before
applicationDidFinishLaunching: then there are some serious problems at
play.
Factor and unhackify rect and size comparisons.
Make the event manager track the switcher's state more accurately.

Repeated fast switches can still run over each other, but they don't
result in unwanted behaviour—mostly they just trigger the Check at
NNCoreWindowController.m:228

This fixes #39
Fold window level checks into + descriptionDescribesInterestingWindow:

And only DebugBreak on applications that aren't known window sharing
offenders.
Convert common Check failure to a conditional log and add pragma message breadcrumbs.

A pragma message is annoying enough to make sure it gets fixed, and
breaking into the debugger that frequently was starting to affect other
things.
Use NSOrderedSet instead of NSArray for window lists.
nil messaging semantics.
A little bit of testing love.
License update.
Regression tests for the window filters.

Covers #2, #8, #9, and #10 as well as some other common failures and
regressions that never had issues filed for them.
Bump NNKit