Fix typos (see gh-1135)
Add foo.jar to fix broken build
Polish Gradle repackage
Extract resource handling to TomcatResources

Extract the nasty Tomcat resource handling reflection code to its own
class.
Polish
Drop RepackageTask.getDependencies()

Drop `RepackageTask.getDependencies` from the gradle plugin in favor of
exposing `getLibraries()` and using the callback.
Drop getDependencies
Allow URL resolution within nested JARs

Update JarURLConnection to allow the resolution of items within a nested
jar, even if the jarFile passed to the connection is several levels up.

This prevent a connection from incorrectly resolving an entry against
the wrong jar file.

See gh-1070
Add Library abstraction

Add a Library class update the LibraryCallback interface and
implementations to use it. This change is in preparation for
an addition `unpack` flag that will be required to allow the
automatic unpacking of certain nested jars.

See gh-1070
Add support for unpacking nested JARs

Update the executable JAR code to automatically unpack any entries
which include an entry comment starting `UNPACK:` to the temp folder.
The existing Maven and Gradle plugins have been updated with new
configuration options and the `spring-boot-tools` project has been
updated to write the appropriate entry comment based on a flag passed
in via the `Library` class.

This support has been added to allow libraries such a JRuby (which
assumes that `jruby-complete.jar` is always accessible as file) to work
with Spring Boot executable jars.

Fixes gh-1070
Merge branch 'gh-1070'
Improve test for JobLauncherCommandLineRunner (see gh-1125)
Re-register SpringApplication listeners in context once it is available

Fixes gh-1141
Fix some sloppy code in context hierarchy support

* The SpringApplicationBuilder was registering the parent context initializer
twice (not really a problem, but confusing if you are debugging).

* ParentContextApplicationContextInitializer itself should have been
checking that the current context is not the parent

* The EventPublishingRunListener as a result needs to call
setApplicationContext on any listeners that are AplicationContextAware

* ParentContextCloserApplicationListener can ensure that there is
only one of its kind per application context by implementing hashCode
and equals

Fixes gh-1142
Avoid eager factory bean instantiation for container customizers
Add instance.uptime to VanillaPublicMetrics
Polish
Fix "signer information does not match" error

Update ExecutableArchiveLauncher so that `-cp` URLs are not added
when they are already contained as nested JARs. This prevents a
SecurityException "signer information does not match error" when using
signed jars. The root cause of the issue was that the primary JAR file
was on the default classpath with the URL "file:....jar" and in the
main URL set as "jar:file:....jar". It is now filtered so that only
the "jar:" variant is added.

Fixes gh-1134
Attempt to fixup prepare stage for release
Attempt to fixup prepare stage for release
Next development version