Conditionally execute scripts as the source of input
Add a test for executing scripts
Make prompt printing an test failure
Don't issue prompts when given a file
Refactor expansion processing

Now instead of matching on a literal string, it uses a character
matching predicate.
Parameterize whether character matching should error if not found
Add test for argument expansions
Enhance test template with more error messages
Don't pass in a valid index, but the end of the string
Add some bounds checking an append_to_buffer

Specifically make sure that the last argument is less than the length of
the string.  Apparently it's getting called like that sometimes
Rename poorly named helper function
Improve test template stderr handling
Make all tests print out shell's stderr
Add command names to builtin error outputs
Correct off-by-one in arg_parse
Rename poorly named test
Make cd test cleanup after itself
Add test for script arguments
Add a module for handling shell arguments
Use shell_args module to make more tests pass