If Atom isn't initialized and able to produce a ViewportContext, the Editor would crash. This attempts to make the initialization fail a bit more gracefully and fixes the crash in the cases I've tested.
Specifically this:
-Ensures key/mouse up event propagation works across multiple viewports
-Ensures that mouse up events for manipulators only get delivered if there's a corresponding mouse down event
-Also tidies up the "are we done processing events this tick?" logic in ViewportManipulatorController