Track whether Task.applicable needs to be refreshed

The Properties class was previously used to track when properties end up
being needed during expasion, and it was able to determine this at the
granualarity of the Task and NamesFactory objects. Add the ability to
track this at a finer level, specifically single at the "applicable"
Field of the Task object so that a follow on change can use this to
detect if the applicable field is ever going to be altered when applied
to different changes in a query. If the Field is not going to ever be
altered, then it becomes possible to cache other values which are based
on this Field's value. Specifically, having the ability to track the
refresh impact of properties on the Task.applicable Field paves the way
to cache TaskTree.Node Lists based on Change Branches.

Feature-Point: I4c3ff9ceb990386e0f0d11fbd55cdc825c677e4c
Change-Id: Ib7d33f2bb05c318b1082311a1a05ff2f67437351
1 file changed