lib: add function `Host.Error.classify`
lib: add failure management flag to Configuration.t
lib: discriminate SSH failures for “short-running”
test: add the `ssh-failure` test
lib: distinguish errors for `Long_running.start`

Now “long-running” implementations are expected to classify errors
between “fatal” and “recoverable”.
lib: distinguish errors in `LONG_RUNNING.update`
lib: distinguish errors in `LONG_RUNNING.kill`
lib: add the `loop` run method (`Command_line`)
lib: move `Configuration` to its own file-pair
doc: update API of `Configuration`
lib: add and propagate notion of `Program.t`

The programs are used almost everywhere, their construction is in
`EDSL.Program`.
lib: explicitely allow “program” direct-commmands
lib: add function `EDSL.get_output`
doc: fix example in the `README.md`