Generate and attach dependency-tree

Update spring-boot-versions to generate a dependency-tree file and
attach it as an artifact. The file is generated by creating a temporary
POM and calling the invoker plugin.

The spring-boot-versions POM now depends on all spring-boot-starter-*
POMs to ensure that they have been installed before the dependency
tree is processes.

See gh-1047
Support transitive excludes in dependency-tools

Update spring-boot-dependency-tools to support transitive excludes.
Transitive excludes are useful with Gradle which considers each
dependency independently (see GRADLE-3061).

Transitive excludes are supported by parsing the dependency-tree file
from spring-boot-versions.

See gh-1047
Support automatic exclude rules with Gradle

Update the Spring Boot Gradle plugin to automatically apply exclude
rules to dependencies.

See gh-1047
Remove superfluous commons-logging excludes

Update all starter POMs to remove commons-logging dependencies that are
not longer required when using the Spring Boot Gradle plugin.

Mainly reverts code from 196f92bd422778aebe5706b84cc8ffe9bc298878

See gh-1047
Merge branch 'gh-1047'