Currently, when checking for files being tracked, we don't read
gitattributes files that are not in the working directory, so we don't
expand any macros that might be in them. Ensure that when we read any
gitattributes file, we read all of them, and in the right order, to
expand macros in later files that have been defined in earlier ones.
Git documents the default global attributes file if core.attributesFile
is not specified as $XDG_CONFIG_HOME/git/attributes, or
$HOME/.config/git/attributes if $XDG_CONFIG_HOME is not set or empty.
Teach our attributes file code about this file and read it as normal.
Read and expand macros when reading the gitattributes files so that
users can use shorthands such as "lfs" for "filter=lfs diff=lfs
merge=lfs". Pass the same macro processor into each attribute lookup
function, since macros can be defined in the system or global file and
then used in per-repository files.