Make sure that we only hash the env pairs. (#4708)
This corrects the hashing behavior for the global hash if there is an
EnvMode specified. The struct now known as `GlobalHashableInputs`
contains additional data that is not required to be present in the hash;
particularly that `envVars` should be `env.EnvironmentVariablePairs`,
not `env.DetailedMap`.
This didn't result in user-facing bugs, but it results in unnecessarily
partitioned caches when using env modes.
We can't hash what is now known as `GlobalHashableInputs` directly, we
must grab the components of it that we need, which this does for the
(currently) two available hash formats.