Allow a process to be excluded using the --without option

This allows a user to specify multiple processes that should not be launched. 

Processes can be specified by using the `--without` or `-w` argument. The argument can be provided multiple times to exclude more than one.

This also refactors parts of the `CLI` class and improves test coverage.