Do not flush response buffer in ErrorPageFilter if request is async

Previously, the ErrorPageFilter would always flush the response
buffer, irrespective of the request being asynchronous. This could
lead to a response being committed prematurely, preventing, for
example, headers being set by subsequent processing.

This commit updates ErrorPageFilter so that in the success case
(status < 400) the response buffer is only flushed if the request is
not async (determined by calling request.isAsyncStarted()). If an
exception's been thrown or the status is >= 400 the response buffer
is always flushed.

Fixes #1316
Merge branch '1.1.x'
Scan for a valid MANIFEST.MF instead of taking the first one

Fixes gh-1321
Add public getter for dependency context
Merge branch '1.1.x'
Add @Inherited to @EnableAutoConfiguration

Fixes gh-1328
Merge branch '1.1.x'
Explicitly set status on raw unwrapped response

The ErrorPageFilter wasn't setting the response status in the case that
there was an error page mapped to the current request (i.e. for all
autoconfigured apps). N.B. this only affects non-embedded apps.

Fixes gh-1320
Merge branch '1.1.x'
Propagate RelaxedConversionService

Prior to this commit, the internal BeanWrapper used by the
RelaxedDataBinder was not using any conversion service at all. This
commit makes sure to propagate the one that has been configured
internally.

Also a dummy call to a [foo] key seems to have been left and has
been removed. This allows to support Enum as map key.

Fixes gh-1242
Export SPRING_HOME for commands to consume if needed
Merge branch '1.1.x'
fix for gh-1331 MetricFilter now supports uri template variables when available
gh-1331 defaulting 404 response metrics to "unkownPath" when no matching handler can be found

Fixes gh-1331, Fixes gh-1333
Change unknownPath to unmapped
Merge branch '1.1.x'
Merge config from custom locations with default configuration

Previously, when one or more custom locations were specified on
@ConfigurationProperties, the configuration loaded from those locations
was used in isolation from the default configuration provided by the
environment. Users have been surprised by this behaviour. For example,
it means that a placeholder used in the custom configuration will not
be resolved against the system properties.

This commit adds a new attribute, merge, to @ConfigurationProperties,
that defaults to true. When merge is true the default property sources
are appended to those that are loaded from the custom locations. When
set to false the custom configuration is used in isolation.

Closes #1301
Update test to correct name of metric for request that returns a 401

The request is being made to '/' and, while the application does have
a mapping for '/', that mapping is not looked for before Spring
Security's filter rejects the request with a 401. This means that the
request is considered to be unmapped and this is reflected in the
metric's name.

See #1331 and #1333
Merge branch '1.1.x'
Never run data.sql scripts if spring.datasource.initialize is false

Previously, the data scripts were always run in response to the
publication of a DataSourceInitializedEvent, irrespective of
spring.datasource.initialize. While the event won't be published by
DataSourceInitializer if spring.datasource.initialize is false, it
will be published if spring.jpa.hibernate.hbm2ddl.auto has been set.

This commit updates DataSourceInitializer's handling of
DataSourceInitializedEvent to only run the data scripts if
spring.datasource.initialize is true.

Fixes #1336