Generalize bulk_operations logic

LMS-11366

@nasthagiri @cpennington please review
Actually, the base mixin should probably just make sure that a new record is created when a bulk operation is started.