chore(case/exception): improve exceptions in case management

related to CAM-2404
fix(engine): allow initialActivity to be nested in subprocesses in PVM

related to CAM-2557
impr(qa): pass variables while completing a task
Merge pull request #93 from berndruecker/performance-testsuite-ingo

impr(qa): pass variables while completing a task
fix(database): add indices to h2 to prevent deadlock on database

- also use naming scheme with 3 digits as patch level

related to #CAM-2567
test(db-upgrade): add patch scripts to sql jar and upgrade test

- the camunda-sql-scripts-XXX.jar now contains the concatenated
  patches of the last version and the current version
- patches from the last version enterprise are need for the current
  test of the current community version
- patches from the current enterprise version are need for
  the test of the current enterprise edition

- to the db upgrade test are two new phases added the sequence is now:
  1. create old version
  2. patch old version
  3. upgrade to current version
  4. patch current version
  5. execute tests
- with this test sequence we do not need a new test but have
  to enable the test for the last final version in jenkins

related to #CAM-2578
refactor(engine): refactor EnsureUtil parameter ordering

- align parameter ordering between methods
- exception class is always first parameter

related to #CAM-2404
chore(engine): change EnsureUtil.XXXNotNull methods default exception

- EnsureUtil.XXXNotNull methods throw per default NullValueExceptions

related to #CAM-2404
chore(engine): change SuspendedEntityInteractionException parent

- SuspendedEntityInteractionException extends now NotAllowedException

related to #CAM-2404
fix(engine): catch CaseDefinitionNotFoundException in CommandBuilder

related to #CAM-2404
chore(engine-rest): convert NotAllowedExceptions to Forbidden Stauts

related to #CAM-2404
chore(engine): throw exception where it happend

related to #CAM-2404
chore(engine): throw exception where it happend

related to #CAM-2404
refactor(persistence): consistent flush ordering

- introduce new DbEntityManager, DbEntityCache and DbOperationManager
- flush is ordered as follows:
  * INSERTs
  * UPDATEs + DELETEs
- Within each category, operations are orderd by
  * entity type (respecting foreign key constrains between entities of
    different types)
  * foreign key constraints (references within a type)
  * id

related to #CAM-1971
fix(config): implement config of scriptcompilation
refacor(persistence): extract PersistenceSession SPI

- extract PersistenceSession SPI for handling persistence operations
- DbEntityManager delegates to PersistenceSession for executing
  operations
- DbSqlSession is default Persistence SPI
- move SELECT operations to DbEntityManager
- refactor Schema Management

related to CAM-2602
chore(engine): cleanup Persistence SPI refactoring

- remove unused DbSchemeManager
- use selectById in CaseDefinitionManager
- add note that databaseSchemeUpgrade now always returns an
  empty string
- reenable test assertions

related to #CAM-2602
chore(engine): remove redundant casts
feat(caseInstanceId): caseInstanceId is propagated in BPMN

This commit adds the following features:

- it is possible to query for process instances with caseInstanceId
- all UserTask within this process instance get the caseInstanceId
- the given case instance id is propagated to sub processes and tasks
- it is also added to the existing history

related to CAM-2510 and fixes CAM-2609
feat(caseInstanceId/REST): expose propagated caseInstanceId in REST

related to CAM-2510