Made a window manager struct and broke stuff

This also added in a WindowEvent message passing system
It moved a lot of the meat out of the display areas
Moved controls to channel drivin code
This did break the WindowList and some of the ChatArea
functionality which I plan to restore