Spockified test
Moved all of the up-to-date checking into the DefaultTaskArtifactStateRepository
- ShortCircuitArtifactStateRepository now only short-circuits for --rerun-tasks
- Added 2 new TaskStateChangeRules:
  - HasNoOutputsStateChangeRule - for non-incremental tasks that don't declare outputs
  - UpToDateSpecStateChangeRule - for handling task upToDateWhen
  - These 2 cases are now logged consistently, and results are cached for incremental change detection
- Log reason(s) when executing incremental task with 'rebuild' context
Removed unneccessary task name from change messages
Minor checkstyle fix