Fix spring test to properly handle failures

Failing test cases weren't not properly handled and instead caused
test to break. Added a test case and verified it works for both JUnit
and Spock.
Correct copy-paste errors in javadocs
Generate springcli.properties before resources are copied

Generate springcli.properties in generate-resources so that it can
be copied by the resources plugin in the process-resources phase.
Update AetherGrapeEngine to honour --local

When running an application, --local can be used to collect the
application's dependencies in a local directory. Prior to
AetherGrapeEngine being introduced, using --local would result in the
dependencies being written to ./grapes. When AetherGrapeEngine was
introduced --local no longer had any effect.

This commit updates AetherGrapeEngine so that it honours --local,
writing its dependencies to ./repository. When --local is not specified
dependencies are written to ~/.m2/repository (the standard location
for the local Maven cache). As part of this change TestCommand has
been refactored so that it lazily initialises its GroovyCompiler. This
ensures that RunCommand has a chance to set the system property that
backs --local before AetherGrapeEngine is initialised and accesses the
property.

Fixes #99
Add test for dispatcher registration
Remove a small race condition
Do not default username/password for DataSource unless embedded

To use a DataSource pool (Tomcat or DBCP) the user must supply a valid
driver class name *and* database URL. If both are supplied and the
driver class is not one of the embedded ones, then no default username
or password is provided.

Fixes gh-94
Update Thymeleaf versions to latest mutually compatible
Add short description of launchers
Fix test broken by MySQL dependency
Ignore DataSourceAutoConfigurationTests.testExplicitDriverClassClearsUserName() as it fails without running mysql instance
Add remote shell implementation based on crsh

This commit adds a new starter named spring-boot-starter-shell-crsh and auto configuration support to embed a system shell within Spring Boot applications.

The embedded shell allows clients to connect via ssh or telnet to the Boot app and execute commands. Commands can be implemented and embedded with app.

For sample usage see spring-boot-samples-actuator.
Re-add Spring-Boot-Commit-Id to MANIFEST.MF of created jars
Fix failing database test on 1.7
Fix test assertion
Fix jmx.groovy command
Add SpringApplicationErrorHandler

[#48055575] [bs-31] Add hooks for failed application context startup
Create a report based on Boot's autoconfiguration decisions
- Gather autoconfiguration conditional decisiions (true and false)
- Provide an actuator endpoint as one means to read the report
- Define @EnableAutConfigurationReport annotation to turn this feature on
- Tidy up autoconfig report a bit and log it if --debug=true
Ensure AutoConfigurationReport is always present
More care required getting beans early in lifecycle