Add scope=test to hsqldb (fixes #330)
Fix binding of overlapping nested maps

When binding a nested map structure, RelaxedDataBinder pre-populates
the target object with default empty maps. Previously, when these
structures overlapped, each step in pre-population process could
potentially overwrite what had come before it. This led to the output
of the pre-population process being incomplete which would lead to a
binding failure.

This commit updates the pre-population process so that it checks to see
if a property's value has already been set by an earlier step in the
process. If it has been set, the existing value is now reused rather
than being overwritten by a new empty map.

Fixes #328
Add placeholder resolution to @PropertySource processing

Previously the core Spring processing of @PropertySource would
resolve placeholders in the location attribute, but the pre-loading
of the property source by Spring Boot didn't do that. Now implemented
using Environment.resolvePlaceholders() (N.B. at a time when the only
Environment entries available are system properties and OS env vars).

E.g.

	@Configuration
	@PropertySource("classpath:/${source.location}.properties")
	protected static class WithPropertySourcePlaceholders {
           ...
	}
Now custom SpringApplication class can be used when extending SpringApplicationContextLoader
Merge pull request #336 from jkubrynski/master

* pull336:
  Now custom SpringApplication class can be used when extending SpringApplicationContextLoader
Polish
Don't register shutdown hook from embedded context

Change `EmbeddedWebApplicationContext` to no longer automatically call
`registerShutdownHook()`. Shutdown hooks must now be registered by the
caller (for users of SpringApplication this will happen automatically).

Fixes gh-314
Consistent javadoc "code" block formatting

Update javadoc to consistently use the "code" style with <pre> blocks.
Also include the latest spring-javadoc.css formatting file.

Fixes gh-332
Polish ConfigFileApplicationListenerTests

Add "my.property" to `application.properties` in order to test ordering
or property sources.

Also use hamcrest for assertions.
Consistent property source ordering with names

Update ConfigFileApplicationListener so that custom names and custom
locations use consistent ordering. i.e. earlier items take precedence
(same as @ProperySource).
Refactor PropertySource support

Locate PropertySourcesLoaders using SpringFactoriesLoader and refactor
the interface to expose file extensions and support 'profiles' within
documents.

Rework ConfigFileApplicationListener for consistent profile loading.
Profiles are now loaded in a consistent order for both profile specific
files, and contained profile documents (i.e. YAML sub-sections).

Also update ConfigFileApplicationListener so that it no longer directly
processes @ProperySource annotations. Instead the standard Spring
ConfigurationClassPostProcessor will insert @PropertySource items with
ConfigFileApplicationListener later re-ordering them.

The SpringApplication can no longer be configured using @ProperySource
annotations, however, application.properties may still be used.

Fixes gh-322
Defensive catch block in LogbackLoggingSystem

Older versions of JBoss AS have a classpath clash with an older
SLF4J (pre 1.6.5), so to prevent an app from blowing up on
startup we defensively catch a NoSuchMethodError.

Fixes gh-339
Upgraded to Spring Data Codd

Update AbstractRepositoryConfigurationSourceSupport to use the newly
introduced RepositoryConfigurationDelegate instead of effectively
reimplementing Spring Data Commons functionality which was prone to
changes in the API (code that wasn't considered to be API in the first
place).

Switch from implementing BeanClassLoaderAware to ResourceLoaderAware
to avoid having to set up a DefaultResourceLoader which should also
improve IDE integration.

Fixes gh-236
Generate a list of autoconfig for docs
Add agent to run mojo
Add support for detecting agent on classpath
Add springloaded agent support to gradle plugin
Tweak for changes in bootRun
Add assertion for -noverify (apparently unnecesary in Gradle)
Make noverify a Boolean so null can mean 'not set'