Ensure properties that are not enumerable can be resolved from placeholders

Before this change a property whose key was in a non-enumerable property source would
not resolve placeholders, leading to ${style} values in @ConfigurationProperties beans
even if the placeholders ere resolvable.
Ensure order is preserved in Rabbit addresses

Using StringUtils.commaDelimitedListToSet() does not preserve order (why?),
so we have to use commaDelimitedListToStringArray().

Fixes gh-1262
Make sure ErrorPageFilter is only applied once per request

Fixes gh-1257
Correct the default Logback config location in the documentation

Fixes #1247
Fix typo (fixes gh-1273)
Reverse priority of property sources when extracting sub properties

Fixes gh-1259
Documentation update

This commit fixes some inconsistent or outdated keys in the
documentation. More specifically:

* allowSessionOverride is no longer a template parameter
* templateEncoding has been renamed to charSet
* Groovy templates do not have the same configuration hierarchy, hence
  they don't share all settings
* spring.data.elasticsearch.local does not seem to exist
* flyway prefix and suffix should be sqlMigrationPrefix and suffix
* spring.rabbitmq.virtualHost had a typo
* endpoints.error.path is not a valid property
* shell.command-path-patterns had a typo
* spring.datasource.max-wait had a typo

Fixes gh-1226
Add java options for Heroku Procfile

Added $JAVA_OPTS variable to the sample Heroku Procfile.
If this is left out it can cause memory issues when the app starts.

Fixes gh-1266
Ensure custom HTTP code mappings for /health don't remove default mappings

Previously any custom http code mapping would remove the default mappings. With this commit the behaviour is changed so that default mappings will stay if a custom mapping is registered. Certainly a default mapping can be overridden.

fixes #1264
Use class name not value to support non-Hibernate JPA vendors

With this change I got a simple Eclipselink version of the data-jpa
sample working. I'll push that when I get time to research it a bit more
(I needed to set up a Java agent so either that might be a problem
for our integration tests if we can't work around it).

Fixes gh-1268.
Correct the profile name in Travis configuration
Correct the descriptions of two sample projects
Change query in MongoHealthIndicator

This commit changes the query in MongoHealthIndicator from serverStatus to buildInfo to avoid unprivileged access and corresponding errors.

fixes #1289
Don't fail hard when settings.xml can't be decrypted by the CLI
Isolate CLI integration tests from any settings decryption failures
Extract property sources from composite when binding

Often this change will not be important because you are binding to
a bean with strongly typed properties. A bean with a Map property,
on the other hand, won't oytherwise be able to reason about the
permitted keys so it will miss any non-enumerable property sources,
including composites whose nested sources are themselves enumerable.

Fixed gh-1294
Change private method name
Rework Jetty startup so connectors are only started once

Previously the server was started to make the ServletContext
available, then, to prevent requests from being handled before the
application context had been started, the connectors were stopped.
Once application context startup had completed, the connectors were
then started again. In addition to being somewhat inefficient, this
caused problems on FreeBSD where stopping the connector didn't free
up the port quickly enough for the subsequent start to then be able
to bind to it.

This commit updates the Jetty startup logic to be closer to the logic
that's used for Tomcat. Before the server is started, the configured
connectors are cached and then removed. The server is then started
without any connectors. Once application context startup has
completed, the connectors are reinstated and started.

Fixes #968
Upgrade to Groovy 2.3.5

Closes #1299
Enable test that relies on class and groovy script configuration

Since Spring 4.0.4, it's now possible to use both classes and
locations to provide a test's configuration.

Closes #1300