feat(engine): add cmmn variable listeners

- similar to execution listeners, allows to define variable listeners
  on model scopes that are notified whenever a variable changes in
  this scope or any child scopes
- adds configuration flag to the engine configuration to disable custom
  listener invocation

related to CAM-2238