Support eapi-x in layout.conf profile-formats (532670)

Add support for an eapi-x flag in the metadata/layout.conf
profile-formats field, where x must be a supported EAPI. This may be
used to set the default EAPI for profile directories that do not
contain an eapi file. For example, setting "profile-formats = eapi-5"
will cause all profiles that do not contain an eapi file to default to
EAPI 5 instead of EAPI 0.

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 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