[work in progress] Feature/regular languages

This branch is an experiment to create a small DSL for a regular language, to define the grammar of commands at the command line. From there we can have autocompletion, highlighting and interpretation.

This should replace ``prompt_toolkit.contrib.shell`` if successful.