3405: Log errors about launching pipeline instances.

There's a couple of components to this:

* Do some basic checks on the organization of the pipeline instance
  before we start running it, and abort if any of them fail.

* If the pipeline runner aborts for any reason, send that as pipeline
  instance stderr to the API server, so other tools like Workbench can
  render it for users' benefit.
3405: Mark pipeline instances failed when they're aborted.
Merge branch '3405-pipeline-error-logging-wip'

Closes #3405, #3582.