batches: Bitbucket Cloud webhook support
Created by: LawnGnome
This PR adds webhook support for Bitbucket Cloud. Docs to follow in another PR.
Implementation wise, the most interesting aspect of this PR is how we handle commit status events — the only useful metadata we get in the payload to link to a changeset is the commit hash, so we have to look the changeset up based on that. For extra bonus points, we don't even get the hash with the same level of abbreviation as we get the hash in the PR.
Don't be too scared by the size of this PR: there's a bunch of testing in here, and also a lot of super repetitive stuff that I mostly wrote with vim macros around type handling.
Test plan
We have good integration test coverage in this PR, and I've manually tested each of these event types on my local instance.