Improve the cast from exception to unicode.

The error handler for HTTP-related errors was recently improved to decode
utf-8, but some exceptions are better at acting like strings than others. This
change adds an explicit cast.

Testing done: Ran unit tests.

Fixes bugs 3419, 3420.
Clean handling of lack of $EDITOR

Problem: If EDITOR is not set, and vim is not installed, rbt post exits with
just "CRITICAL: [Errno 2] No such file or directory" as an error message, which
does not indicate where the problem lies nor how to solve it.

vim is not installed by default on many distributions, or is installed as "vi".
Moreover, EDITOR is traditionally used for a line editor (remember those?),
with VISUAL being the environment variable of choice for a full-screen or GUI
editor. If neither is set, we should fall back to the editor most likely to be
installed in the base distribution.

Solution: Prefer $VISUAL over $EDITOR over "vi". Offer a helpful error message
on failure.

Reviewed at https://reviews.reviewboard.org/r/5790/
Merge branch 'release-0.6.x'