test(revision/test): increment revision of historic variables

related to CAM-2366
fix(typo): fix typo in test case
fix(IoUtil): use utf-8 to read file content

related to #CAM-2379
feat(sql/task): extend db table "ACT_RU_TASK" with new columns

This commit adds new columns to the db table "ACT_RU_TASK":

- CASE_INSTANCE_ID_
- CASE_EXECUTION_ID_
- CASE_DEFINITION_ID_

related to CAM-2189
feat(cmmn/lifecycle): manualStart, disable, re-enable Tasks or Stages

This commit extends the "CaseService" to be able to start manually,
disable or re-enable a Task or Stage. This can be done by using the
"CaseService" as follows and behaves like it is described in the
specification of CMMN 1.0:

  - manualStart: performs a transition from state "ENABLED" to "ACTIVE".
    In case of a HumanTask there will be a new UserTask available, that
    can be  executed by a Case worker. And in case of a Stage the planned
    items which should be executed inside this stage will be instantiated.

    caseService
      .withCaseExecution("aCaseExecutionId")
      .manualStart();

  - disable: performs a transition from state "ENABLED" to "DISALBED"

    caseService
      .withCaseExecution("aCaseExecutionId")
      .disable();

  - re-enable: performs a transition form state "DISABLED" to "ENABLED"

    caseService
      .withCaseExecution("aCaseExecutionId")
      .reenable();

Note: the "caseExecutionId" that has to be passed to
"CaseService#withCaseExecution()" represents the case execution which is
associated with the Task or Stage to start manually, to disable or to
re-enable.

Furthermore it is possible to set and remove variables for a case
execution as follows:

  caseService
    .withCaseExecutionId("aCaseExecutionId")
    .setVariable("...", ...)
    .setVariablesLocal(...)
    .removeVariable(...)
    .execute();

This can be combined with one of the above described state transitions,
for example:

  caseService
    .withCaseExecutionId("aCaseExecutionId")
    .setVariable(...)
    .removeVariable(...)
    .manualStart();

This has the effect that the changes will be executed within a single
command and if something fail the command will be rolled back.

The TaskQuery is extended by further query criterias:
- TaskQuery#caseInstanceId() to query after tasks which are associated
  with a specific case instance
- TaskQuery#caseInstanceBusinessKey() to query after tasks which are
  associated with a specific case instance with the given business key
- TaskQuery#caseInstance... etc.

related to CAM-2189, CAM-2192, CAM-2194
feat(cmmn/REST): manualStart, disable, reenable via REST API

This commit adds the possibility to start manually, disable or re-enable a
Task or Stage using the REST API. And it is possible to set and/or delete
(local and not local) case execution variables.

Furthermore this commit extends the TaskQuery via REST API.

related to CAM-2189, CAM-2192, CAM-2194
feat(case/REST): create, delete, update for case instance variables

related to CAM-2189, CAM-2192, CAM-2194
feat(engine/scripttask): add ability to use external script resource

- script source can now be returned by an expression
- script source can now be loaded from an external script
- external scritps can be found in the deployment or the classpath
- the path for the external script can be returned by an expression

related to #CAM-2357