Support profile-default-eapi layout.conf profile-formats (532670)

Add support for a profile-default-eapi flag in the metadata/layout.conf
profile-formats field. When this flag is enabled, it enables support for
a profile_eapi_when_unspecified attribute which can be used to specify
the default EAPI to use for profile directories that do not contain an
eapi file. For example, the following settings will cause all profiles
that do not contain an eapi file to default to EAPI 5 instead of EAPI 0:

	profile-formats = profile-default-eapi
	profile_eapi_when_unspecified = 5

This is convenient for organizations that maintain their own profiles
in separate repositories from Gentoo, since they typically want to use
EAPI 5 for all of their profiles, and this allows them to avoid having
separate eapi files in each directory of their profiles. The name of
the profile_eapi_when_unspecified attribute is inherited from Paludis,
which has supported this attribute in exheres repositories for many
years.

The default EAPI setting is stored in the RepoConfig.eapi attribute,
which is used as the "default" parameter for all
read_corresponding_eapi_file calls. Each profile node in
LocationsManager.profiles_complex now has an eapi attribute which
serves to cache the computed EAPI for that node, allowing redundant
read_corresponding_eapi_file calls to be eliminated. As a result,
functions such as grabfile_package now have eapi and eapi_default
parameters, where eapi is used to pass in a cached EAPI, and
eapi_default is used to pass in a default for
read_corresponding_eapi_file to use when a cached EAPI is not
available. For /etc/portage/profile, the EAPI is considered to have a
default value of None, which means that atoms from any supported EAPI
are allowed.

X-Gentoo-Bug: 532670
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=532670