Fix stripping of XML-like syntax in comments

If a comment consisted of only XML-like syntax (such as "<test>"), it would be
treated as if the comment was completely empty and the comment would be
canceled. The issue here is that reviewCommentFormIsEmpty would strip out tags
before testing whether the comment was empty or not. Removing the call to
stripTags() fixes the bug.

Testing Done:
I manually tried to recreate the bug with different ways. By submitting
'<sim realtime="true>' or 'something <sim realtime="true>' in the comments you
can verify that the bug is no longer exists.

Bugs closed: 3298

Reviewed at https://reviews.reviewboard.org/r/5796/
Merge branch 'release-1.7.x' into release-2.0.x
Fix error with repo settings caused by hosting services with extra %s

When adding a new repository, having %s in the base URL of a non-custom bug
tracker breaks things. That's because we don't have an error checking for that,
and once the complete URL gets generated out of it, the problem is detected,
but that leaves the form in a broken state, where you cannot save the form
anymore.

We decided to address this by letting the user know of the error and tell
him/her that % character can be escaped if there is a need. The appropriate
error message is presented if this error happens.

Testing Done:
* Entering invalid URL for bugzilla, trac or redmine will result in an error
  that you must fix before submitting.
* Other things work as expected.

Bugs closed: 3033

Reviewed at https://reviews.reviewboard.org/r/5810/
Fix our module import checks.

We have a number of checks to see if we can import certain modules. For
these, we use a combination of `import` statements and `imp.find_module`
calls. The reason is that some modules would fail to import on some
systems using `imp.find_module`.

The reason for that is that `imp.find_module` doesn't use registered
importers, and therefore can't find modules in zipped eggs. Furthermore,
our usage would cause leaked open file handles, since if the module is
represented by a .pyc file, `imp.find_module` would pre-import it.

Instead of dealing with all this, I've added a new, single function for
checking if modules can be imported. All checks in the codebase now use
this instead, giving us consistency and fixing the issues with zipped
eggs.

Reviewed at https://reviews.reviewboard.org/r/5846/
Bump to 2.0.1 dev.
Fix displaying the review request draft banner after an edit.

A regression in one of the later RCs broke displaying the draft banner
after editing an existing published review request. The placeholder
banner in the DOM was being set prematurely as the active banner, and
never shown.

We now only add the banner up-front if it's visible, and we make sure to
show it when needed.

Fixes bug #3352
Reviewed at https://reviews.reviewboard.org/r/5848/
Properly decode post-commit svn diff contents to Unicode.

`SCMTool.get_change` is expected to return a Commit object with a 'diff'
parameter that is a unicode object. The SVN libraries both return diffs in
string format, which need to be decoded.

Testing done: Ran unit tests.

Fixes bug 3353.

Reviewed at https://reviews.reviewboard.org/r/5845/
Merge branch 'release-2.0.x'
Fix the close-submitted hook docs in the 2.0 release notes.

These docs were incorrect, showing a URL that doesn't actually work.
It was missing the hosting service ID. I've updated the URL, added the
list of supported IDs, and genericified some text that was specifically
calling out GitHub/BitBucket.

Reviewed at https://reviews.reviewboard.org/r/5850/
Fix typos and a misleading reference to GitHub in the release notes.

This fixes a typo ("post-receive" instead of "post-recieve") and changes
a sentence that was referencing GitHub but should have been more
generic.
Merge branch 'release-2.0.x'