Use the full path to avoid collisions with shell, etc
Add shell classes
Add local sources test
Add git repo class
Replace logic and tests in shell
Remove LoginShell until we need it
Add test for check_cd