FilteringPathname bug fixes and improvements

Document filter consistency requirement.

Implement glob method.

Make + always return a filtered pathname.

Ensure that to_s always returns the input pathname as a string.

Improve handling of relative pathname results.

Ensure only absolute pathnames are passed to the filter.

Clean pathnames before filtering.

[#61738342]
Merge 61738342-FilteringPathname-improvements to master

[Completes #61738342]
Fix FilteringPathname comparisons and sorting
Handle FilteringPathname.open arguments correctly
Application and Droplet abstractions

This major change codifies the use of the Application and Droplet
abstractions.  These abstractions ensure visibility constraints and
standard treatment of paths across all components.  The changes here
are compatibility breaking and will be documented in the commit that
follows.
Merge 61738342-abstractions to master

[#61738342]
Bug and CodeClimate fixes

Some bugs have cropped up when running on Travis.  These changes fix
some of those bugs and eliminate some duplication highlighted by
CodeClimate.

[#61738342]
Merge 61738342-abstractions to master

[#61738342]
Fixes to TAR tests

Previously, the TAR fixture used to test download_tar was not gzipped.
The tar command on OS X handles an extra z in the command without a
problem.  The one on ubuntu does not.  This change ensures that the
fixture is gzipped as well.
Merge 61738342-abstractions to master

[#61738342]
JARs added to additional libraries in compile

Previously, some of the frameworks only added their JARs to the
additional_jars collection as part of release.  Since some components
symbolically link the additional JARs (as part of compile), these JARs
were not showing up on the classpath.  This change ensures that the
JARs are added  as part of compile.

[#61738342]
Merge 61738342-abstractions to master

[#61738342]
Merge remote-tracking branch 'upstream/master'

Conflicts:
	lib/java_buildpack/framework/spring_insight.rb