Allow ReviewUI Integration through ReviewBoard Extensions.

There's now a ReviewUIHook that extensions can use to register review
UIs for different types of file attachments. This handles registering
and unregistering the UIs.

Reviewed at http://reviews.reviewboard.org/r/3565/
Introducing Thumbnail Integration through Extensions.

ReviewBoard Extensions can now define how to create thumbnails
for specified file attachment mimetypes.

Added FileAttachmentThumbnailHook to generalize a hook point for all files of
all mimetypes. Mimetype Handlers for text-based mimetypes can leverage
`reviewboard.attachments.mimetypes.TextMimetype` by simply overriding
`_generate_preview_html` to define how to generate the HTML used in the
thumbnail, instead of having to redefine `get_thumbnail`.

Testing done:
- Disabled the registration of XMLMimetype in reviewboard.attachments.__init__
- Verified that XML thumbnails now fall back to raw uncolored text
- Copied over the XMLReviewUIExtension from the sample extension branch, and:
- Added XMLThumbnail.py to define the XMLMimetype class for generating XML
  thumbnails
- Modified extensions.py to use the FileAttachmentThumbnailHook to hook
  XMLMimetype into ReviewBoard to handle XML thumbnails.
- Verified that the Extension installs without error
- Verified that Extension-installed XML thumbnails feature work exactly as
  did before.

Reviewed at http://reviews.reviewboard.org/r/3614/
Administrators can associate server SSH key from the Repository form

Administrator(s) of a Review Board instance are given the option to
automatically associate the instance's SSH key with new/existing repositories,
if supported by the hosting service, from the Repository form.

Manually ensured key association completed under the conditions required for
existing repositories:
- Created new repository using hosting service that supports SSH key
  association (GitHub).
- After repository created, edited repository, checking associate SSH key
  form field.
- Confirmed key uploaded to GitHub

Manually ensured key association completed under the following conditions for
new repositories:
- From the admin, added new repository, using GitHub as the hosting service,
  and setting the "Associate SSH key" field.
- Confirmed key uploaded to GitHub

Manually confirmed that correct error message returned when key association
failed. Confirmed that key association not attempted when the form already
contained errors.

Reviewed at http://reviews.reviewboard.org/r/3488/
Revert "Administrators can associate server SSH key from the Repository form"

Christian tells me that we don't want this in 1.7 yet. This reverts commit
0f0c5c346f5e92ded668a1800fbb2b0f0e11d3bf.
Merge branch 'release-1.7.x'
Administrators can associate server SSH key from the Repository form

Administrator(s) of a Review Board instance are given the option to
automatically associate the instance's SSH key with new/existing repositories,
if supported by the hosting service, from the Repository form.

Manually ensured key association completed under the conditions required for
existing repositories:
- Created new repository using hosting service that supports SSH key
  association (GitHub).
- After repository created, edited repository, checking associate SSH key
  form field.
- Confirmed key uploaded to GitHub

Manually ensured key association completed under the following conditions for
new repositories:
- From the admin, added new repository, using GitHub as the hosting service,
  and setting the "Associate SSH key" field.
- Confirmed key uploaded to GitHub

Manually confirmed that correct error message returned when key association
failed. Confirmed that key association not attempted when the form already
contained errors.

Reviewed at http://reviews.reviewboard.org/r/3488/