Add methods to retrieve appropriate archflags

Inspired by @adamv's work in #21330.

This creates new methods to retrieve the appropriate architectures for a given processor, and uses them in stdenv, superenv, and formulae. Added in this pull request are:

`Hardware::CPU.arch_32_bit` - The CPU's 32-bit arch, currently `i386` or `ppc`
`Hardware::CPU.arch_64_bit`
`Hardware::CPU.universal_archs` - Helper that returns an array of both the 32-bit and 64-bit archs for the given CPU type, mainly to construct multiple arch arguments
`MacOS.preferred_arch` - Based on `MacOS.prefer_64_bit?`