What Are Halbach Arrays, and What Are They Used for?