Step one towards fixing Dialogs: replace CurrentState and PrevState with a real stack
Minor changes to prepare for the endof the EngineInterface::PreemptLoop

* changed WindowManager to reference root using a shared_ptr
* Added a dialog_pop signal to WindowManager (which probs should be a separate commit but its too late noe)
Implemented the new PreemptLoop-free Dialog code (Still pending a code cleanup)