Test that auto configurations can be added by init scripts

When an init command is run, it may add entries to the classpath. This
commit adds a test that verifies that, if an entry that is added to
the classpath contains a CompilerAutoConfiguration file in
META-INF/services, then the CompilerAutoConfigurations declared in it
are found by subsequent ServiceLoader.load calls.
Add support for configuring Aether via settings.xml

Previously, Aether's configuration was largely hard-coded making it
impossible to configure a mirror, provide credentials for accessing
a repository, etc.

This commit adds support for configuring Aether via Maven's
settings.xml file. The support is optional and must be enabled by
grabbing spring-boot-maven-settings in an init script. The Aether
instance that's used when running the application will then be
configured using settings.xml. The settings file is expected to be
found in ${user.home}/.m2/settings.xml.

The configuration of the following items is currently supported:

 - Offline
 - Proxies
 - Mirrors
 - Server authentication
 - Local repository location

If the support is not enabled, settings.xml does not exist, or
settings.xml does not configure certain things then sensible defaults
are applied.
Reinstate ./repository as a "remote" repository

The grab command downloads the dependencies of one or more Groovy
scripts to ./repository. This commit ensures that those previously
downloaded dependencies can be used by a subsequent invocation of the
run command.

The location and behaviour of the local cache is unaffected by this
change. If the dependencies in ./repository do not exist in the local
cache, Aether will "download" them from ./repository and store them in
the local cache.

Fixes #191
Revert "Test that auto configurations can be added by init scripts"

The test passes locally, both in Eclipse and on the command line, but
fails on the CI server. Revert the addition of the test while I
hopefully figure out why.

This reverts commit 2e81b1d0d0924f1a24c3c0dd2d686218cd701f06.
Use a single <manifestEntries> element

Previously, there were two <manifestEntries> elements in the CLI's
pom.xml. With certain versions of Maven, this appeared to cause the
first element to be ignored in favour of the second. The problem did
not occur when built locally with Maven 3.1.1, but did occur when built
by Bamboo which, I believe, uses 3.0.x

This commit combines the two <manifestEntries> into one.
TestUtils -> SpringBootTestUtils
Allow user to disable all JMX exports with spring.jmx.enabled
Change algorithm for determining active profile from external config

Instead of adding active prpfiles for every one we encounter, we need to
build up a complete "default" Environment and then ask it what the active
profiles are. Implemented in ConfigFileApplicationListener.

Fixes gh-198
SpringBootTestUtils->EnvironmentTestUtils
Add test for user overriding @EnableJpaRepositories
Default spring.config.location to file: if no prefix supplied

Fixes gh-198
Prevent 404 in gh-pages
Migrate JolokiaAutoConfiguration to use ConfigurationProperties instead of accessing the environment directly to obtain configuration properties
Allow @EnableGlobalMethodSecurity in a non webapp

Fixes gh-202
Don't load BatchAutoConfiguration at all if there is no JobLauncher

Fixes gh-204
Ensure logging initializer listens to the right event

This should make a difference to gh-196. It might even fix it
(depending on what snapshot the user had there).
Allow maven build with JDK 1.8
Fix sorting of auto configuration classes on JDK 8
Move properties file to correct location
Fix broken test

Recent changes to the repository configuration for @Grab
didn't update the tests which use the GroovyCompiler as
a standalone. Fixed that by using the
RepositoryConfigurationFactory.