beginning restructure
adding some logging stuff
copying old stuff over
re-arranging to pass services in
cleaning things
Remove many-many relationship between screens and channels, and
remove notion of locking screens / channels.  (All permission
stuff should be put in an outer layer.)
removing notion of public channels (put it in outer layer)
cleaning
cleaning
bugfix: put most specific first in route order
disconnecting screens
cleaning up sock server code and sending screen width / height
saving height width
using redis set per screen to track websocket connections
cleaning up redis after shutdown
closing websock connections to change channel
api for show / hide on-screen-display, and delete channel
program variables and events
Merge branch 'restructure'.  Hoping it doesn't break too much...