Cancel plan execution if its serial executor loop was rejected

If the engine's task executor is configured to reject execution upon
saturation (e.g. with AbortPolicy) we will now abort the plan that is
being executed. We do not recommend rejecting work at this level since
it will cause in-flight plans to be aborted. Instead, we recommend using
standard techniques for managing at the engine level, e.g.
back-pressure, load shedding, or degraded responses. The time spent on
plan execution can also be bounded using a timeout task.

@jhartman, @chikit