Support arbitrary keyset pagination for batched background migrations
Batched background migrations can currently only paginate by a single bigint key. This works for most tables, but not for tables that either have a composite primary key, or have a non-integer primary key.
Most pressingly, the partitioning of merge_request_diff_commits requires such a migration, and merge_request_diff_commits has a composite primary key on (merge_request_diff_id, relative_order).
Modify the batched background migration framework to support arbitrary pagination.