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/