Abort magnum commands when external commands exit with non-zero status

* check exit status of external commands
* log stdout/stderr on failure
* better progress and completion messages