refactor(core): cancel scope & concurrent activity

Enhance PVM Atomic Operations and Graph Model to provide facility for an activity to cancel a scope or be executed concurrently to activities in the same scope.

1. Cancel Scope

A PvmActivity may be marekd isCancelScope(). As a result, the PVM will remove all executions and sub process instances in the current scope before entering the activity. The activity will be entered with the scope execution.

Cancel (interrupt) scope is used for the following BPMN constructs:
* Boudary Event with cancelActivit="true"
* Interrupting Event Subprocess
* Terminate End Event

2. Concurrent Activity

A PvmActivity may be marked isConcurrent(). As a result, the PVM will create a new execution under the correct scope execution before entering the activity. This may require expanding the execution tree into a concurrency tree in case the current scope execution is a leaf.

Concurrent Activity is used for the following BPMN constructs:
* Boundary Event with cancelActivity="false"
* Non-Interrupting Event Subprocess

This refactoring has the following positive effects:

* Unification of common behavior between Event Subprocess and Boundary Event and related constructs. This will works towards supporting the Non Interrupting event Subprocess (see #CAM-112).
* FEAT: Partial support for Non Interrupting Event Subprocess. Proper support will require additional parser work for signals and more testcases. #CAM-112.
* FIX: Execution Listeners on cancel scope / concurrent activities now work properly. This works towards improving history logging.
* FIX: Write history for Boundary Events (#CAM-1729). This was not possible before due to extremely uggly implementation of non-interrupting Boundary Event.
* FIX: Write history for Intermediate Catch Events follwing an Event Based Gateway (#CAM-1630)
* FIX: Removes long-standing limitation with boudary events: it is now possible to have multiple sequence flows connected to a Boundary Event (#CAM-1730)
* FIX: Non-Interrupting Boudary Event marks Host activity instance "ended" in history (#CAM-1710)
* FIX: Connot use Non-Interrupting Boundary Event connected to Parallel Multi Instance Subprocess (#CAM-1731)