Polish
Extract AbstractHealthAggregator

This commit makes it easier for users to implement HealthAggregators
Add auto configuration support for Spring Data Solr

Registers required components in application context if not available to
set up environment for usage with Spring Data Solr. Will listen on
SolrServer and SolrRepositories for configuration.

By default an HttpSolrServer is registered unless a zkHost (zookeeper
host) is defined. In that case an instance of CloudSolrServer will be
created.

By default multicore support is enabled, creating instances of
SolrServer for each core defined via @SolrDocument.
Polish Spring Data Solr integration
Document Solr integration
Add a HealthIndicator for Solr
Merge branch 'solr'
Ensure a JreProxySelector is applied as a fallback

The issue was that the JreProxySelector was only applied
if the existing selector was null, but that hasn't been the case
since we added supporty for settings.xml. The strategy now is to
fallback to a JreProxySelector if the existing one is null
or not already a composite. Fixes gh-914.
Allow the tomcat maxHttpHeaderSize to be changed in external config

Prevents large SPNEGO headers from causing server errors for example.
Added the property to ServerProperties.

Fixes gh-931
Upgrade to Spring Integration 4.0.1.RELEASE and use its bom

Closes #792
Remove duplicate JreProxySelector

Since we upgraded Aether we now have the native JreProxySelector
available so we don't need to keep a copy ourselves.
Extract AbstractHealthIndicator

to make it more simple to implement HealthIndicator
Cleanup eclipse formatter settings

Sync the explicit setting with 'project specific settings' in case
the eclipse plugin is not used.
Various improvements to the Gradle plugin

Refactor and rework several areas of the Gradle plugin:

- Refactor package structure into functional areas and configure each
  area separately via a new PluginFeatures interface.
- Convert BootRunTask to extend RunTask rather than attempting to
  find existing RunTasks.
- Simplify agent integration by no longer needing specific BootRunTask
  code.
- Update the repackage task to consider the `mainClassName` property
  in addition to `springBoot.mainClass`.
- Automatically set `mainClassName` when calling `run` or `runBoot`
  from `springBoot.mainClass` if there is one.
- Ensure that explicitly defined `main` options on JavaExec tasks always
  take precedence.

Fixes gh-547, gh-820, gh-886, gh-912
Update SolrHealthIndicator to extend AbstractHealthIndicator
Upgrade to Spring Batch 3.0.0.RELEASE

Closes #906
Polish
Continue to support spring.jpa.hibernate.namingstrategy

In 1.0, the property spring.jpa.hibernate.namingstrategy could be
used to configure Hibernate's naming strategy. This was at odds with
most other configuration where binding to namingStrategy would require
a property with some indication that it was two separate words, for
example: naming-strategy, naming_strategy, or namingStrategy

This commit adds a new setter, setNamingstrategy, to JpaProperties so
that an app that was using namingstrategy in 1.0 continues to work
in 1.1.

Issue #928
Polish
Update docs for new extended health support

fixes #930