spaces
comment adjustment
move make_fake_exists into fakes

and test it in test_fakes
explain _main better in its docstring/comments
simplify exception handling in main
move exceptions from main.py to their own module

This lets implementation of routines for use in _main move out to other
modules, without circular imports between these modules and main

also adapt test_main to exceptions change
reorganization in _main to prepare for --make
push handle_shell_config into shell_config.py

also change signature and adapt how it's called
move option parsing into new options.py
move run exceptions into exceptions module

also BadConfigError -> BadConfig to match everything else
and adapt test_run