Merge branch 'stable-3.0' into stable-3.1
* stable-3.0: (27 commits)
Use shallow clone while expanding definitions
Move match() and matchOrNull() to MatchCache
fixup! Cache Task definition lists for ChangeNodes
Cache Task definition lists for ChangeNodes
Split SubNodeFactory out of SubNodeAdder
Moving caching logic out of loadSubNodes()
Use a TaskTree.Node.Invalid instead of nulls
Use overloading for special cases instead of nulls
Add a TaskTree ApplicableNodeFilter
Add an isCacheableByBranch() to the PredicateCache
Track whether Task.applicable needs to be refreshed
Allow Expander to expand a single Task's field
Minor cleanup of task Properties.expandText()
Remove cached Change subNodes on Node completion
Explicitly signal end of Task Properties expansion
Use a SubNodeAdder to add TaskTree SubNodes
Avoid hard coding the refs/meta/config ref
Inject All-Projects in TaskConfigFactory
Change TaskExpressions to iterate over TaskKeys
Avoid passing isTrusted in TaskConfigFactory.getTaskConfig()
...
Change-Id: I7d061a78b29b6b6fb36bf508a1038848b14c2388