Implement "onchange" support

"onchange" specifies execution prerequisites. It is specified in the same way
as "require", it implies "require", but it specifies that object is executed
only if any of specified prerequisites has changed target's state. This means
that any of specified prerequisites has generated code to be executed, either
local or remote or both.

Object has generated code if it itself has generated code or if any of its
children object has generated code.

Resolve #843.
3 jobs for feature/onchange in 1 minute and 1 second (queued for 9 seconds)
latest
Status Job ID Name Coverage
  Test
passed #8520
pycodestyle

00:00:17

passed #8519
shellcheck

00:00:22

passed #8521
unit_tests

00:00:20