Move to an event handling model

This is required for window managers to work so they can get events on
other windows.
Don't use the client window in event structures

We eventually want to move away from a "client window" struct as an API
point, which helps match the server API model.
Rename a method
Remove use of the ClientWindow structure

Move to an opaque "Window ID"
Move Window to be a helper class utility in demo.js

It's not part of the server API anymore.
Track window IDs on the Server class

Rather than being global