Improvements to caching of input file changes during task execution:
- Restrict number of input file changes cached
- Remember if all changes have been cached, to reduce work involved in recalculating
REVIEW-2040: inner class can be static
Cleaned up the TaskExecuter chain to work better with incremental tasks
- Replaced IncrementalTaskAction with TaskAction interface, which can be contextualised with a TaskExecutionContext prior to execution
  - Any Action<Task> supplied to a task is now wrapped as a TaskAction
- TaskExecuter chain now passes a TaskExecutionContext
  - SkipUpToDateTaskExecuter adds TaskArtifactState to the context
  - ExecuteActionsTaskExecuter contextualises any TaskAction prior to execution
- Removed Task.isIncrementalTask(): this was only required to bypass the short-circuit when a task has no outputs
  - Currently are forcing incremental task to have outputs using Task.upToDateWhen {true}
Moved TaskArtifactState for task with no declared outputs back onto ShortCircuitArtifactStateRepository
- history is not loaded for task with no outputs (or upToDateWhen specs)
REVIEW-1930: Unit test coverage for annotation processing of incremental TaskAction methods
REVIEW-2014: Removed CLA from Gradle source tree