Layout is a simple pane without any restrictions, which should be
implemented next to see if the interfaces are stable and usable enough.
As for example the interface for `Widget.content()` has changed to
return a `[]u8` and not a `*std.ArrayList`.
- split structure for better inclusions
- create PlainRenderer to render contents to the terminal
- simplify events
- clearify what structs are created on the heap and which are on the stack
- quit event is now emitted from the main event loop and not the input loop (see helper function `App.quit`)
- rename several variables and/or functions for easier understanding
- introduce `App.interrupt` to stop the input thread and start a new sub TUI which takes over the entire screen (i.e. 'hx', 'nvim', etc.)