Implement DAP powered reviewer assignment
We've done our initial investigation in https://gitlab.com/gitlab-org/gitlab/-/work_items/591286 regarding this feature and have a POC working with DAP.
Now we'd like to implement the DAP powered reviewer assignment feature. This includes the following:
- Add `dap_powered` auto reviewer assignment strategy where it picks the required number of reviewers for each approval rules.
- Post a short summary of the choice of reviewers and its rationale
- Assign them only when the MR becomes ready (created as non-draft, or marked ready from draft)
- Ignore optional approval rules
- Consume a DAP token per assignment
Reviewers will be selected in priority order:
1. Available (not busy or OOO)
2. Lowest pending review workload
3. Currently in working hours
4. Most recently active (tiebreaker)
issue