Format warnings in test error message
Gracefully handle missing environment variables

- Establish defaults where possible
- Warn when variables are required
- Delay evaluation so code paths which don't need a variable aren't affected
Replace launch_editor() with subprocess_check_call() so more code can be tested
Inherit AbstractTodoEnv to test environment variable code too
Test missing EDITOR and TODOTXT_SLICE_REVIEW_INTERVALS variables