ReplConsoleView multiline input + refactoring

This is a polish of #489 (and supersedes it)

Multiline input field in the ReplConsoleView. The UI elements have also been factored out into a trait (because the trait will be used by the evaluate expression view, eventually). To evaluate code/change history, CTRL must be held (when pressing ENTER/UP/DOWN).

CommandField keyboard events can now be overridden, too, instead of being hard-coded into the command field implementation.