Shell|Curses: Basic key input handling
libdeng2: Imported Hawthorn code

Added Rectangle, Clock, Animation, rules, Widget and RootWidget.
libdeng2: Cleanup
Shell: Renamed the curses shell target
Shell: Set up framework for curses-based shell app

Started work on building a shell app. The UI is based on the same
libdeng2 UI widgets that will act as the foundation of the client's
graphics UI.

Added a curses-specific TextCanvas, a widget class for widgets drawn
on a TextCanvas, a RootWidget class that owns a TextCanvas, LogWidget
for the server's message history, and ShellApp that will set up a shell
connection and create the UI widgets.
libdeng2|Math: Added de::floor() function
libdeng2|Refactor: One global Clock instance can be set as the appClock
libdeng2: Added more methods for de::Rectangle<>
libdeng2|Widgets: Refining the layout rules implementation

The Rule class hierarchy provides tools for specifying dynamic
mathematical expressions (e.g., for widget layout). The implementation
is still rather rough, though.

Todo for later: Rules are rather powerful, but there is also need for
a (higher-level?) mechanism where parent widgets can lay out child
widgets according to some principle (list, grid, etc.). In practice,
it can build on the Rules. In any case, manually constructing complex
rules is a bit arduous.
libdeng2|Widgets|Fixed: Added missing destructor for RectangleRule