commits
We create the infrastructure necessary to support shell built-ins. The
built-ins `cd` and `pwd` are added and lightly tested.
We disable all the necessary flags (and restore them) for entering
raw mode!
Shells are always more fun when there is an interactive mode to play
around with. Here we vendor Shelter's ANSI-ready copy of ocaml-linenoise
and add a simple interactive loop to osh!
Commands separated by newlines or semicolons will now be executed
sequentially. The logic for commands that exit with non-zero exit codes
will still need some close work.
This logic also comes with a vendoring of the inherit_fds logic too.
See the corresponding issue on Eio's page: https://github.com/ocaml-multicore/eio/issues/826
Substitute the default FDs into the various redirection operators.