remove some debug prints. fix docstrings and todo
revert to old, mostly working subprocess behaviour.

This fixes the tests that have been failing for a few commits.
remove redundant test assertions
change get_default_shell to get_current_shell.

Now returns this processes parent shell (i.e. what the user is
currently using), and only falls back to the user's default
shell from /etc/passwd if parent shell cannot be determined.
Run user's command in an interactive shell.

This allows aliases and functions to be interpreted correctly.