Separates MPI stdout / stderr.

Uses the --output-filename <prefix> option to mpiexec.
Refactors Makefile and improves engine test output.

Ensures that the proper exit status is returned to shell from mpiexec
call.
Put parallel output files in the .parallel_out directory.
Don't ignore exit status for certain make targets...

And mark `test_engines_with_coverage` as .PHONY
Merge branch 'master' into bugfix/separate-mpi-output