Add a check to find a review request with a matching commit ID for webhooks.

Previously, we relied only on the regex to match a review request ID in the
commit message. Now, we use the regex to try to find a matching review request
ID in the commit message, and if no match is found, we then use the commit ID
to try to find a matching review request.

Testing Done:
I pushed different commits to a GitHub repository with the post-receive webhook
enabled (and saw the expected behaviour):
- Commit that did not match the regex but matched a review request's commit ID
- Commit that did not match the regex and did not match a review request's
  commit ID
- Commit that matched the regex

Reviewed at https://reviews.reviewboard.org/r/5666/
Bump to 2.0 RC 3 dev.
Fix reverse() of 'password-reset-confirm' for email template.

The email template for resetting a password was still using "uidb36" for the
user ID, but Django has changed to "uidb64". This was causing an error when
users attempted to reset their password.

Fixes bug 3301.

Reviewed at https://reviews.reviewboard.org/r/5672/
Support custom HTTP methods for hosting services API calls.

This extends the API set for HostingService to allow subclasses to call
other forms of HTTP methods. For now, I've only added HTTP DELETE, which
will be used by an upcoming change.
Added a management command for resetting GitHub auth tokens.

With the new Heartbleed vulnerability in the wild, GitHub recommends
resetting all authentication tokens, just to be sure. This change
introduces a management command that makes that somewhat easy.

This command will loop through all GitHub accounts that are linked to
Review Board, resetting their tokens and replacing them new, valid
tokens.

If using a registered GitHub OAuth app for Review Board, then the resets
won't require any credentials. However, for personal tokens (which is
the standard case), it will require a password, and possibly a
two-factor auth token.
Support custom HTTP methods for hosting services API calls.

This extends the API set for HostingService to allow subclasses to call
other forms of HTTP methods. For now, I've only added HTTP DELETE, which
will be used by an upcoming change.
Merge branch 'release-1.7.x' into release-2.0.x
Fix an issue when merging the reset-github-tokens code.

This was still using simplejson, and should have been converted to json.
Return a proper error for authorization failures in GitHub.

Authorization failures in GitHub were appearing as standard
HostingService errors. We now check the error code and properly return
an AuthorizationError.

Reviewed at https://reviews.reviewboard.org/r/5686/
Improve the note field for GitHub auth tokens.

When registering GitHub auth tokens, we send a note indicating what the
token is for. This was always hard-coded, making it hard to
differentiate tokens.

It also seems as if recently, GitHub started colliding tokens with the
same note.

To fix this, we now include part of the URL in the note, and also a
UUID. This should help prevent any future collisions.

Reviewed at https://reviews.reviewboard.org/r/5687/
Merge branch 'release-1.7.x' into release-2.0.x
Merge branch 'release-2.0.x'