Issue description

In mus-ws there are currently a number of assumptions where each ws::Display (top-level window) corresponds to a display::Display (display device). These assumptions make sense for internal window mode (Chrome OS) where there is one top level window for each display device. For external window mode (Desktop Chrome) top level windows are Chrome windows. There can be 0-N top level Chrome windows on each display device and our current code won't quite work.
External contributors are starting to work on external window mode and will be blocked by these assumptions soon. Fixing this will require changes in ws::DisplayManager, ws::UserDisplayManager and display::ScreenManager at least.

Sws::UserDisplayManager now takes a display::Display instead ws::Display. I'm going to hand this one off to tonikitoo now. A few things still need to be handled to make it this work in external mode.
1. What calls into ws::UserDisplayMananger will need to change so you can modify display state and top level windows separately.
2. FrameDecorationValues don't make sense in external mode, so ws::UserDisplayMananger has to be changed to not care about that in external mode.