tty/Terminal: corrected clear_back(Rect) behavior.¹

1: Oops. Was continuing until the end of the container and not
considering width of the rect.
ui/debug: added 'focused' parameter to ui::geom_debug_render().
keys: corrected code/codepoint logic in key_input_match().¹

1: || was returning true for codepoint_none even if the other
was valid. Obviously only want the conjunction here.
ui::Signal: take rvalue ref in operator(), return return_type() if not bound.
ui: Restructured; added focus and update actions.

aux: added aliases for smart pointers, multimap, unordered_set, and set.

ui:
	added Widget type information;
	split Container functionality into ProtoContainer and ProtoSlotContainer;
	rebased Container on ProtoSlotContainer;
	added Root class;
	added FocusMap and focus functionality (moves core functionality to Root);
	added update actions (Widget and Context).

ui::ProtoSlotContainer: corrected parenting behavior.¹

ui::Widget:
	renamed & relocated to ui::Widget::Base;
	moved Widget-specific definitions into ui/Widget/Defs;
	decoupled Widget and Context (removes context property);
	added root property.

ui/Defs:
	added missing documentation for enum Event;
	added FocusDir and UpdateActions.

test/ui/packing: added button signal test.

1: Oops. set_parent() after moving the pointer.