split out Plush.Resource from Plush.Utilities
implement the xtrace (-x) and noexec (-n) flags
support for verbose (-v) and parseout (-p)

note: output is done in Plush.Run utilities which is somewhat wrong for doctest and web modes.
clean up Plush.Run's interface

This simplification was prompted because parsing a command now really does affect execution state.
Notably, the verbose (-v) and parseout (-P) flags can cause output during parsing.
The need to properly handle that output during doctest runs, caused the simplication of the Parse.Run
interface to treat all actions the same, and export a few utility shell actions. The result was simpler
code almost everywhere, and more correct handling of possible errors (including exceptions) during parsing.
shellExec now returns the ExitCode, which simplified some other code
Proper handling of -v, -P, -x, and -n flags for the web based interface

Parsing commands for the web front end ignores the verbose (-v) and parseout (-P) flags.
Running commands for the web front end itself, ignores noexec (-n) and xtrace (-x) flags.
Output is now collected from stderr first, so -x output precedes the command's own output.
Separate out the argument parser from the built-in syntax code
refactor arg parsing code and use it in Main

support long options
extracted CommandSummary from main processArgs logic
Major clean up of Main.hs argument processing

support set flags on the invocation command line
new command line flags for doctest and shelltest modes: --doctest and --shelltest
correctly set the shell's positional paramters ($1, $2, ... )
handle command line -i
correctly determine interactive mode
change interactive prompt to compliant '$ '
Support $0 shell name parameter
support verbose and non-verbose test modes
improved alltests.sh script

now checks for presence of shells before testing them
doesn't check sh if it seems that it is just one of the other shells
supports passing -v to the tests
updated SKIP annotations on tests to not mention sh specifically
merge in the great shell args overhaul

Features:
- $0 shell name parameter
- flags: verbose (-v), parseout (-p)\, xtrace (-x), and noexec (-n)
- shell invocation arguments now fully conformant

Tests:
- support verbose and non-verbose test modes
- improved alltests.sh script

Refactoring:
- split out Plush.Resource from Plush.Utilities
- separate out the argument parser from the built-in syntax code
- major clean up of Main.hs argument processing
- shellExec now returns the ExitCode, which simplified some other code
- clean up Plush.Run's interface