Fixed parallel issue with build execution listeners.

1. Reverted the previous fix (e.g. concurrent map in the TaskExecutionLogger)
2. Fixed the problem where the notifications are triggered, this way all implementations of the TaskExecutionListeners, including user's will be safe for parallel build.
Reordered the new and noteworthy sections.
Reordered the deprecations and breaking changes sections.
Some release note edits.
Added a placeholder for the release note preamble.
Renamed `dependencies.componentMetadata { }` to `dependencies.components { }`.
Tweak the release notes for 1.8
Fleshed out the release note introduction
Renamed variable systemPropertiesProp to systemProjectProp in gradle.properties to match the idea of overridden properties and the given command line parameters. Now removing -Dorg.gradle.project.systemProjectProp=systemPropertyValue from the command line gives the expected result of the fallback to the gradle.properties variable.
Changed Flying-saucer home to new location
Reduced log level.
Removed log message.
hasNewOwner information is propagated to the UnitOfWorkParticipants. This refactoring is needed to properly implement expiration of the in-memory task history cache.
Made the task history cache expire the contents based on the file lock information.
Fixed the log message about the stats of the in-memory task history cache.
Checkstyle
Changed ServiceLocator so that it no longer implements ServiceRegistry.
Added ServiceRegistry.getAll(class).
jmock -> spock
Some initial detangling of the service registry hierarchies.

- Added DefaultServiceRegistry.addProvider() which accepts a bean that can have factory and decorator methods, similar to the service registry subclass itself.
- Inject dependencies into factory methods via parameters.