Shell|libdeng2: Key event generation and dispatch to the widgets

The keys from curses are converted to a de::String and passed to
the widgets inside a KeyEvent.

de::Event is the base class for all types of events.