remove Widget::m_selected (IsSelected() is still available)
remove Widget::m_mouseActive (IsMouseActive() is still available)
don't bubble mouse activation/deactivation events up the tree
expose current mouse position from UI::Context and UI::Widget

Context::GetMousePos() returns the absolute position.
Widget::GetMousePos() returns the position in the widget's client area.
allow Click event handlers to override the mouse-driven focus selection
use pop_back() instead of resize(size() - 1)
avoid dynamic_cast in Container::{Enable,Disable}Children
add Widget::HandleVisible/HandleInvisible internal events

These virtual methods can be implemented by specific widget types to let
them do things when they are added or removed from the tree of visible
widgets.
make UI::Widget::IsMouseOver public

This allows the DropDown widget to correctly choose whether it should
be highlighted when it closes its floating list widget.
UI::CheckBox: add Toggle, SetState, IsChecked, onValueChanged (and Lua API)
UI::List: Add {Get,Set}SelectedIndex, NumItems, IsEmpty (and Lua API)
UI::TextEntry: add Lua binding for SetText
UI::Slider: add {Get,Set}Range and fill in Lua API
UI::DropDown: expose the same {Get,Set}SelectedIndex API as UI::List
add support in FileDialog for entering a new file name
adjust FileDialog design somewhat to add an extra bit of instruction text
expose various engine settings to Lua through accessor functions on Engine
add Lua API Lang.SetCurrentLanguage
add GetKeyBindings() to the Lua Engine API

This is temporary, but probably will last for a while. The current key
bindings system will eventually be replaced by something tied into new-ui,
or some other Lua-based binding system.
implement a new setting screen in Lua/new-ui