Adjust behaviour of reportBuildFailures
Make sure it consistently uses stderr, rather than a mixture of stdout and stderr. Also rename it to dieOnBuildFailure to make it clear that it is fatal in the case of build failures. In general we report build failures in two steps: header plus build log for each failing package, then a final die exception with summary. Previously the build log step was reported to stdout whereas the die exception message gets reported to stderr. So we switch that to use new dieMsg and dieMsgNoWrap utils so that it all goes to stderr. Also, like die, these are reported irrespective of the verbosity. This is more or less just a workaround for the fact that we do not yet have a nice structured/formatted error mechanism that would allow us to throw just the one error in this case.