Standardize on spring.datasource.* for database config

[Fixes #58921238] [bs-333] spring.database.* and
spring.datasource.* used to configure database
Tidy up log message (add space)
Tooling for PropertiesLauncher in JAR archives

To use PropertiesLauncher instead of JarLauncher in an
executable JAR we have provided tooling support. In Maven
(using the starter parent to default some of the settings):

    <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
        <layout>ZIP</layout>
      </configuration>
    </plugin>

in Gradle:

    apply plugin: "spring-boot"
    springBoot {
        layout = 'ZIP'
      }
    }

[Fixes #58837492] [bs-330] Add tooling for PropertiesLauncher
Add profiles to /env
Stop log4j from moaning on startup
Ensure JdbcTemplate and DB initializer still work when user supplies DataSource
Polish
Allow 'java -jar' to work with signed nested jars

Fix RandomAccessJarFile to correctly read certificate information as
jar entries are loaded. This change allows signed nested jars to be
used as JCE providers.
Provide an Aether-based Grape Engine

Previously, @Grab annotations would use Ivy to download the
dependencies with some of Ivy's known limitations being worked around
by GrapeEngineCustomizer.

This commit adds a GrapeEngine implementation that uses Aether,
the dependency resolution 'engine' used by Maven and Grails. To ensure
consistent behaviour with a Maven build, the Aether-powered dependency
resolution uses the dependency management configuration from the
spring-boot-starter-parent pom file.
ClassLoader separation. Incremental commit.

WORK IN PROGRESS