a8n: Implement ExternalChangeset.diff for GitHub & Bitbucket Server
Created by: mrnugget
This adds the ability to display diffs for changesets that already exist on Github and Bitbucket server. It fixes #6164.
The caveat, as discussed in #6164, is that we don't display a diff for changesets that have been merged or closed, since that would require changes to gitserver which are not necessary from a product's perspective (since we don't want to display diffs when a changeset has been closed/merged)
In order to make that make that possible this makes the diff
field on ExternalChangeset
nullable.