Do not report success from canceled jobs.

The current behavior leads to "interesting" problems. For example:
    - Consider a rule with two commands.
    - The associated transformer gets executed via an ExecutorJob.
    - Some other command in a different transformer fails, so the
      Executor calls cancel() on the ExecutorJob. Let's say this happens
      while the first command is running.
    - The ExecutorJob now waits for the first command to finish and then
      reports a successful finish to the Executor. This is the actual bug.
    - The Executor updates the timestamp for all artifacts to the
      current time, even though only one was actually written.
    - On the next run, the command is skipped, even though one artifact
      is not actually up to date.
This patch makes sure that these timestamp updates do not happen for
artifacts of transformers in canceled jobs, unless all commands were
successfully run.

Change-Id: Idccf3e7cc8fe67b7655cd032c70bf9f074400206
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>