Shells in OCaml

Yield in for and while loops master

We make sure to yield to other commands inside merry shell operations. Additionally, we make sure to close the stdin if we need to.