Minor updates to release notes
Fix formatting bug in release notes.
Typo.
merge master into release for preparing 1.12 release
Include libraries referenced by 'api' linkage in generated visual studio solution
GRADLE-2017 tests for scope preserving in idea plugin.
Test for IdeaDependenciesProvider
Changes in dependency mapping to IDEA scopes.

Fixes GRADLE-2017 and GRADLE-2231.
All dependencies are collected with referencing configurations and
they are assigned scope(s) using list of rules.
Use Guava Objects instead of java.util.Objects (Java7+).
Wrap the root of the class loader scope graph in a caching class loader.

It turns out that filtering class loaders impose a non negligible overhead due to it using no internal caching of its decisions. Wrapping a filtering class loader in a caching class loader is generally dangerous as a filtering classloader's set of what to filter is mutable, but in this case we can reasonably guarantee that the definition of what to filter won't change.
Add Launchable.getDisplayName(), move Launchable.getName() to TaskSelector.
Incremental java compilation. For 1.12 release, removed the jar changes support because it is not working well enough.
Merge branch 'release'