Shells in OCaml

Handle argument expansion better master

Still not happy with this implementation, but it is closer to the specification in terms of field-splitting and handling of awkward parameters like $@.