Fix #91 with a window controller cache keyed by screen number.

Also changes window controller storage to be keyed based on screen number instead of screen frame, since the latter is unnecessarily complicated given the way screen residency is currently abstracted.