core: SEAT compensate - prevent IndexOutOfBounds

CommandBase -> hasTaskHandlers:
* compensate: setExecutionReason to ROLLBACK_FLOW
  for ensuring internalEndWithFailure flow
  as in revertPreviousHandlers.
* internalEndWithFailure: verifying executionIndex >= 0
  to prevent index underflow.
* revertPreviousHandlers: when executionIndex < 0
  set command as succeeded (to ensure tasks clean up).

Change-Id: I7af9f3ab3bfce91b114d82145957909ba1ee7819
Bug-Url: https://bugzilla.redhat.com/966153
Bug-Url: https://bugzilla.redhat.com/966618
Bug-Url: https://bugzilla.redhat.com/965676
Bug-Url: https://bugzilla.redhat.com/962497
Signed-off-by: Daniel Erez <derez@redhat.com>