Ensure that failures can be pickled

When a failure happens in a subprocess it needs to be
pickleable (and not contain a traceback, since those can
not be pickled) when being sent across the process boundary
so that the receiving process can read it and unpickle
the corresponding object.

Part of blueprint process-executor

Change-Id: I2f26faa4e02da6acf4f0840239d0b17143de8d76
Merge "Ensure that failures can be pickled"