Only reload nodes when needed

If the task hasn't been modified by property expansion and NamesFactory
expansion has not used any change or inherited properties, then the
current Node's subNodes do not need to be reloaded so skip reloading
them. The practical impact of this is that any current operational task
configuration should not be doing much more work after this change than
if Node refreshing had never been implemented in the first place as this
effectively eliminates all the refreshing overhead in those cases.
After this change, the cost of the change properties implementation is
only born by tasks which actually use them. Note: when subNodes use
inherited properties from a parent task, they may still cause all the
subNodes to be reloaded unnecessarilly, this could be further optimized
away at some point if desired.

Change-Id: Ia60006ba53a0055daed3f7c1d4001a74a4233a8a
2 files changed