Merge changes Ifc67b7cb,Iadc9f544,I3e62af9e,I7ee1b63d,I61224c57, ... into stable-2.16

* changes:
  fixup! refactor predicate cache into its own class
  fixup! Add support for tasks-factory and names-factory keywords
  fixup! Support outputting elapsed evaluation time on tasks
  fixup! Revert "Revert "plugin:task Adds support for names-factory of type change""
  Add a Container.toString() to help when debugging.
  Harden inputs to basename
  Fix to alter change context for TaskChangeFactories