Merge branch 'stable-2.16' into stable-3.0

* stable-2.16: (23 commits)
  create getInternalProperties() method
  create a Properties.RecursiveExpander
  move Field expansion to the Expander
  create a Properties.Expander
  Handle invalid task roots gracefully
  task: Rewrite method to make it look less buggy
  fixup! Support exporting properties to task json
  Add TaskTree definitions more directly
  Rename TaskTree.Node.definition to task
  Fix to apply task properties to names-factory fields
  Add change task properties
  Fix major sonar issue related to rule "squid : S1132"
  Display task counts next to each header
  Stop double adding Gerrit-ApiVersion
  Task plugin: Track ChangeData in TaskTree
  Store properties at the TaskTree.NodeList level
  Always wait for subtasks unless already failed
  Revert "Revert "plugin:task Adds support for names-factory of type change""
  Use a match cache to skip duplicate queries for a change
  Refactor TaskAttributeFactory to create ChangeNode class
  ...

Change-Id: Ie75ea3d7a11ae7e56e5dff12dfbe1f43e88e6ca4