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.

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

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

Changes
=======

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)
* FIX: Interrupting Event Subprocess does not cancel event subscriptions (#CAM-1733)