Modularize Differential Diff transactions and attach binaries
Summary:
Fully modularizing DifferentialDiffTransaction, and then fix T16472 by attaching any binary files uploaded to the diff object.
Refs T16485 T16070.
Test Plan:
Set the default view-policy of new files to something that isn't very public.
Create new diffs using `arc diff` that includes a picture of a small cat. Other kinds of images are out of scope.
- Users that don't have permission to see the revision should not be able to see the file
- Users that have permission to see the revision, should be able to see the file.
- Changing the policies on the created file to "no one" will not be make a difference.
- The file's page will show the diff in the Attachment list.
Also:
- Herald can still block the creation of the diffs.
Reviewers: O1 Blessed Committers, valerio.bozzolan
Reviewed By: O1 Blessed Committers, valerio.bozzolan
Subscribers: tobiaswiese, valerio.bozzolan, Matthew, Cigaryno, jdelker
Maniphest Tasks: T16485, T16472, T16070
Differential Revision: https://we.phorge.it/D26724