Add impl and test to read the tree only when its deps has changed
A filter must define a `isUnchanged` function to notify that its result has not changed.
The `isUnchanged` fn of a filter will be called only when the filter has not dependencies,
otherwise the filter dependicies provides the result of that filter has been changed.