Shell|libdeng2: More robust management of maximum line width

MonospaceLogSinkFormatter, TextRootWidget, and LogWidget now disallow
resizing to a very small / negative width.
Shell|Refactor: Character allocation in TextCanvas

Rather than allocating individual entries, characters are now allocated
and freed as arrays.
Shell|Refactor: Cleaned up CursesApp