[BREAKING CHANGE] Window refactor, introduction of Processes

Processes collect and execute lists of functions. If a function returns
boolean false, the process is halted. If the function returns a promise,
the process waits for the promise. If the promise is rejected, the process
is halted. If the promise is resolved the promise continues.

Changes
* Introduce OO.ui.Process
* Convert window and dialog to use processes
* Convert frame to return promises instead of taking callbacks
* Using super everywhere

Change-Id: I5f97185296e2c9a2d5fcdd9f2f7975e24995e49a
Merge "[BREAKING CHANGE] Window refactor, introduction of Processes"