Add the BugTracker framework and Bugzilla/JIRA bug infoboxes.

This change adds a new interface to the hosting service app for deeper
integration with bug trackers. At the moment, this interface defines three
methods to fetch information about a given bug, which are used to provide a
hover infobox that shows the summary, description, and status.

This interface is currently implemented by the existing Bugzilla backend, and
by a new JIRA backend.

The next steps for this is to implement the interface for more bug-tracker
backends, and to start adding capabilities such that Review Board can do things
like add a comment to a bug when a review request linking to it is published.

This change is based on these changes by Tomi Äijö:
* https://reviews.reviewboard.org/r/5531/
* https://reviews.reviewboard.org/r/5769/
* https://reviews.reviewboard.org/r/5745/

I've made several changes to Tomi's original implementation. The bug infobox
formatting has been cleaned up a bit, especially with regards to the formatting
of the description text. The caching steps are now done in a helper inside the
BugTracker class so we don't have to re-implement it everywhere. I've also made
it so that failures to fetch the bug result in no infobox, rather than an
infobox which just has the ID and nothing else.

Testing done:
* Tested the bug infobox with a bug tracker configured to point to
  https://bugzilla.mozilla.org, and https://jira.atlassian.com. Saw that bug
  information was fetched correctly and that the infobox looked good.
* Tested invalid bug numbers and saw that the infobox request returned 404 and
  no infobox was displayed.
* Tested that links to existing bug trackers (Google Code, etc) worked well.
* Tested that newly-added bugs linked correctly.
* Ran unit tests.

Reviewed at https://reviews.reviewboard.org/r/6047/