Ensure that private class methods are private

Previously, a number of class methods were incorrectly scoped by using
the instance `private` method.  As pointed out in the issue, this
doesn't actually hide them.  This change uses the class-reopen style
to actually scope them.

[#59657214]
Print buildpack repo info to standard output (under compile script)

This can only be printed under the compile script as the detect and
release scripts deliver payloads to standard output.

If there is a git repository, prints the following:

    Java Buildpack source: <remote url>#<head commit sha>

If there is no git repository, prints the following:

    Java Buildpack source: system

[#62829398]