Batch Calibration: Rethinking Calibration for In-Context Learning and Prompt Engineering