discrete scheduler's triggering limitations fixed

Three new wrapper classes are introduced into 'invokable' package to
monitor the updated knowledge paths of a schedulable process. This is
to overcome the limitation that duck typing: without listeners we
needed a way to know which exact knowledge fields are updated (and if)
when an ensemble is executed.
ensemble triggering fixed