JBPM-4052: implemented ordered compensation
Fixes to the core engine (compensation) + JBPM-3785: Compensation (in subprocesses)

Compensation:
- Made sure that associations in subprocesses are dumped (XmlBPMNProcessDumper and various bpmn2 *Handler classes)
- Used Comparator logic instead of map/list/sort logic for ordered compensation signalling in WorkflowProcessInstanceImpl
- Modified RuleFlowProcessValidator to correctly validate subprocesses with compensation

Fixes:
- Added validation for Event SubProcesses to RuleFlowProcessValidator
- Added id and name to StartNode validation errors.
- Removed "eventFired" logic from WorkflowProcessInstanceImpl.signalEvent()
- Fixed WorkflowProcessInstanceImpl.signalEvent() so that CompositeNodeInstance nodeInstances that
  accept an event are signalled (they weren't before)
- Made sure that the internal string (.intern()) is added to
  WorkflowProcessInstanceImpl.completedNodeIds to make sure there are no errors when using
  WorkflowProcessInstanceImpl.completedNodeIds.contains(...)
JBPM-4051: converting system.out.println's to logger.* methods
Ongoing work