Resolve JRE version late

Previously when detect() was called on the buildpack, it would resolve
a version of the JRE, regardless of whether the application was a Java
application or not.  This meant that any network connectivity problems
that might be highlighted by the Java buildpack would show in non-Java
projects.

An ideal solution to this would be to change the implementation of the
VersionedDependcyComponent such that version and uri resolution
happened as part of detect, but this would break compatibility for
many 3rd-party components. Instead, that resolution is moved to
detect, *but only for OpenJDK- like JREs*.  This leads to the
replication of some of the initialization code, but this is considered
a less-bad solution than breaking compatibility.

The end result is that the version and uri of
VersionedDependencyComponents will happen at initialization time, and
be avoided by inspections of the filesystem.  The JRE will not resolve
as part of initialization, but rather at detect time.

[#67329858]
Merge 67329858-delay-version-resolution to master

[Completes #67329858]