Add Hardware::CPU.arch_(32|64)_bit

This replaces hardcoding of i386/x86_64 all over the code.
Add MacOS.preferred_arch

Replaced the plethora of ternaries we've used all over the place to
determine whether x86_64 or i386 is called for.
Mach: improve PPC arch detection

Also adds some reusable constants into the global Hardware::CPU
namespace, available on both OS X and Linux.
Mach: add as_cmake_arch_flags helper
Mach: improve tests
Add Hardware::CPU.universal_archs
Use Hardware::CPU.arch(32|64)_bit in formulae
Use Hardware::CPU.universal_archs in formulae
superenv: use Hardware::CPU.universal_archs

This defines the new HOMEBREW_ARCHS environment variable, which is
currently only set during universal builds, so that the tool wrappers
no longer need to hardcode i386/x86_64.
LinuxCPUs: provide stub methods