Rename BackendCurses to DriverCurses. Add DriverDummy - dummy driver for debugging purposes. Move clipping stack from driver to common.ClipStack class.
Focus
=====
Only one widget can have focus at the time.
Top widget has link to currently focused widget in 'focuswidget'.
Events emitted on change: focus, unfocus
mousedown - focus widget under mouse
tab - focus next child in container (depends on canfocus())
shift-tab - previous child
hide() -> unfocus
tab/shift-tab into / out off containers?
trapfocus # if True, tab cycles inside container
widget.hasfocus()