WIP DONOTREVIEW add 1st-class support for diff views
Created by: sqs
DONOTREVIEW
This makes (will make) it so that extensions can work with diff views:
- Add decorations to the raw diff content, not just the base/head documents (eg to make computing things like code churn easier)
- Contribute actions to diffs and diff hunks, not just the base/head documents (eg to implement "approve this hunk" or "approve this file's changes")
- Collapse and expand diff editors (eg to implement "show me only the parts of this PR that change code I own" or "...only hunks in this PR that nobody has approved yet")
- Add extra information about the PR, such as a nicer rendering of Codecov stats and a listing of all Datadog/LightStep metrics/traces affected by the PR