- When the `--debug` flag is passed to the main script, `RunCommandsError`
exceptions are now raised instead of being caught. Raising these exceptions
actually facilitates debugging. ;)
- Default command options specified via config are now validated. Previously,
nonexistent default options would be silently ignored. Now a `CommandError`
will be raised.
- When reading streams (e.g., when the `local` command is run), `EIO` errors
are now caught and ignored. We already do this when writing, so it makes
sense to do it also when reading. TODO: Review which OS/IO errors can be
caught and safely ignored.
- Revamped config handling. Mainly, this is internal facing. Creation and
handling of config objects is simpler and more consistent.