common-cli: CLI framework

You can set the prompt via `ConsoleReader`, which is needed. We could provide a method in `CLI` to set the prompt, but I decided I might as well expose `ConsoleReader`.