Improve World#trigger return value

- return PlaningFailed, ExecutionFailed, or Triggered products
- improve error ExecutionPlan::Steps::Error
  to keep reference to original error
- PlaningFailed contains error risen in Plan phase
  to be able to raise it again when needed
- ExecutionFailed contains error explaining why execution was rejected
  to be able to raise it again when needed