Per-component configuration

Previously, each component was responsible for reading its own
configuration.  This was very verbose and resulted in a lot of
duplicated code.  This change moves the reading of configuration in
the buildpack itself.  The buildpack reads a configuration file (named
by convention) and passes that configuration to the component.

In addition to this, the Details type has been abstracted and moved to
util for use by other components that use the buildpack repository
structure.

[#51641233]
Merge 51641233-per-component-configuration to master

[Completes #51641233]