Enhance Editor to warn user actions that can potentially lose data.

Also:
- Change how the UIElement::GetNumChildren() method is being exposed to scripting to avoid confusion with "numChildren" getter.
- Make Button element focusable. Focused button accepts enter key or space key as click. TODO: to visually show focused button differently than non-focused ones.
- Fix MessageBox dialog window centering issue.