Clean up code that supported using non-Shell objects.

I think we can remove support for running non-Shell shell commands now.
Fix failing tests on case-sensitive file systems.