Arithmetic expansion
Subshells
Fix parsing error in handling of backslash-newline sequences
improvement to alltests.sh

specific tests can now be given on the invocation line to run just some doctest files with all shells
fix for loop nits

Support for loops with an "in" clause (uses positional vars)
Stop setting last exit code at start of loop
The spec grammar doesn't admit this usage:
    for x; do ... done
However, upcoming corrigenda will support it
fix variable assignment with nothing after the equals sign
read builtin - almost

still need to support reading input one line at a time
remaining support for read: readLine in PosixLike

N.B. The implementation is both horribly slow in IO, and flawed in TestExec (breaks pipes)
support for exit code from read

the exit code indicates if EOF (or other error) was reached
Introduce ErrorCode and improve shell variable functions

This commit introduces the type ErrorCode, which is used in contexts where only success or shell error are possible.
Such a context is setting shell variables, and these functions have now been changed to return this more restricted type rather than the very general ShellStatus.
The utility machinery for dealing with return types (ExitCode, ErrorCode, and ShellStatus) in Plush.Run.Posix.Utility has now been significantly overhauled.
Move the new return utilities into their own module
support tests that shell error in doctest

enabled up a number of tests that couldn't be run before
Handling Shell Errors during expansion

Created new Expansion monad
Now properly handling shell errors in a wide variety of cases (see doctests)
Handle divide by zero in arithmetic expansion
Handle the interesting case of commands with no command name that need to return the exit status of the last command in command substitution (if any)!