Fix bug in IBA::circular_shift -- negative shifts didn't wrap correctly