implement getting recursive build deps in one func

this single implementation in the
catkin.cmi.common module also can cache the result
because calculating it is expensive and done
each time a job finishes
refactor the CLI

you can now:
- build explicit packages in the workspace
- choose to not build deps with --no-deps
- passing arbitrary cmake/make args now works
- only list the packages to be built, do not build

These options were add but are not implemented:
- skip packages up to a certain pkg, --start-with
- order the output of commands into blocks
remove vestigial function
pcmi: output ordering and changed default behavior

pcmi now outputs delayed, ordered output by
default, and you can instruct it to output
interleaved data without a delay. It will also
printout data without delay when only one
executor is being used.