Split custom_badges_really_ordered

Fixes #545 by splitting custom_badges_really_ordered into add_custom_badges and shift_custom_badges.

Keep in mind that the logic has flipped - shift_ and add_ need to be True by default.
This block could theoretically assign a blank badge to someone if we ran out before the event.  That's probably okay, since the solution to that is probably just "don't do that", though I do imagine we'll need to order like 100 extra blank staff badges, and I'm not even sure that'll be enough.  Something to think about.

If we wanted to be extra safe we could replace ``if CUSTOM_BADGES_REALLY_ORDERED`` with something like ``if check_range(self.badge_type, self.session.next_badge_num(self.badge_type))`` or something like that; basically validating that we don't overflow the badge range pre-event.