Implement Placeholder Reassignment Expiration Worker
<!--IssueSummary start-->
<details>
<summary>
Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.
</summary>
- [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=569770)
</details>
<!--IssueSummary end-->
## Background
As part of the data retention policy for user contribution mapping tables https://gitlab.com/groups/gitlab-org/-/epics/17248, group owners have a 1-year window to perform user reassignments. After this period expires, contributions will remain assigned to placeholder users if no action is taken.
## Objective
Implement a cronjob that automatically updates the status of expired import source users to "keep as placeholder user".
## Technical Details
The worker should:
- Run every 6 hours (cron: `0 */6 * * *`)
- Query `import_source_users` table for records where:
- `reassignment_expires_at <= NOW()`
- Status is "pending reassignment"
- Update these records to "keep as placeholder" status
- Process records in batches using loop-based batching
- Use a batch size of 1,000 records
## Implementation Notes
- Follow [loop-based batching](https://docs.gitlab.com/development/database/batching_best_practices/#loop-based-batching) best practices
issue