Everything You Need to Know About Halbach Arrays