JBPM-3785 (Compensation): jbpm-flow modifications

- Added a BroadcastEventTypeFilter in order to be able to broadcast the "Compensate-" event to all
  nodes listening for a "Compensation-*" event
- Modified the RuleFlowProessValidator to accept associated activities to (compensation) boundary
  event nodes
- Modified WorkflowProcessInstanceImpl to deal with compensation events (correctly)
- Modified BoundaryEventNodeInstance to deal with compensation correctly
  - it wasn't possible to use a CompensationBoundaryNode/-Instance because
    1. we provide the node instance in the start method
    2. but we can't "look foward" then, and tell if compensation will be used with the boundary event
- EventSubProcesses were only being found at the "process" level, but not in subprocesses (or nested
  subprocesses). This has been PARTIALLY fixed -- I'm not sure I got everything, especially the
  event listeners.
- EventSubProcesses were listening based on (String) event types. This was changed to use the
  EventTypeFilters, because otherwise the BroadcastEventTypeFilter functionality is skipped
  (for compensation).
- Some small other minor fixes
JBPM-3785 (Compensation): jbpm-bpmn2 modifications

- Added/corrected parsing and xml dumping for
  + Associations
  + isForCompensation attribute
- Made compensation (catch) events and event subprocesses use (Broadcast)EventFilters
- Added lots of checks for compensation parsing
Cleaned up FIXME notes and various small things in jbpm-bpmn2 (and jbpm-flow-builder) tests
JBPM-3785 (Compensation): making sure all nodes have unique id's
JBPM-3785 (Compensation): jbpm-bpmn2 tests

- including tests for nested event sub processes
JBPM-3785 (Compensation): serialization/protobuf logic for the WorkflowProcessInstanceImpl.completedNodeIds field
Fixed mistake in Chapter-ExceptionMgmt.xml