Allow Review UIs to decide whether they're usable on a case-by-case basis.

ReviewUI subclaseses can now define a `is_enabled_for()` function, which
returns whether it can be enabled for the given user, review request,
and/or file attachment. This allows, for instance, limiting a review UI
based on extra_data on an object, or based on the given user or
Local Site, or anything else.

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