run::run
Improve color parsing, add `ConfigError`, put `invocation_directory` on Config object, return error code from `run::run` instead of exiting.
Subcommand
run::run() is pretty unwieldy. As a first step in improving it, this commit pulls most of the argument parsing into the `config` module. It also renames `Configuration` to `Config`, just to be easier to type.