Abstract away some types

String and integer types have changed in python 3. In 2.x, the 'str' type is a
string of bytes, and the 'unicode' type is a string of text. In 3.x, the
'bytes' type has replaced the old 'str', and 'str' has replaced 'unicode'. The
six library has abstractions for these that we can use while we're trying to
support both.

Additionally, 3.x has merged the 'int' and 'long' types, so there's a similar
abstraction for that.

Testing done: Ran unit tests.
Reviewed at https://reviews.reviewboard.org/r/4906/
Use "six" to abstract dictionary iteration and callable for python 2/3

I'm starting to work on porting our codebase to be compatible with both python
2 and 3. In python 3, items(), keys(), and values() are all iterators by
default and the old iter*() methods are gone. The "six" library includes
abstractions to handle these.

In addition, for some strange reason 'callable' is gone in python 3.0 and 3.1.
They brought it back in 3.2 (which may be a reasonable minimum), but for now,
to get the 2to3 tool to shut up, I'm using six's abstraction for that as well.

Testing done:
- Ran djblets unit tests
- Ran reviewboard unit tests

Reviewed at https://reviews.reviewboard.org/r/4893/
Remove hashlib fallbacks

Supporting Python 2.4 meant that we had to use the separate md5 and sha1
packages instead of hashlib. Now that we're 2.6+, we can rely on hashlib being
present.

Testing done: Ran unit tests
Reviewed at https://reviews.reviewboard.org/r/4913/
Clean up imports and kill port of logging.WatchedFileHandler

There were a bunch of places where we were using continuation lines for
multiple lines of imports from the same module. I've cleaned those up to use
parentheses, instead.

While I was doing this, I noticed that we still had a backport of
logging.WatchedFileHandler. Since we're now 2.6+ only, we don't need this
anymore.

Testing done: Ran unit tests
Reviewed at https://reviews.reviewboard.org/r/4914/
Improve and fix a couple things in inlineEditor.

This adds a 'title' attribute to the "required" asterisk that says "This
field is required."

It also fixes a bug with setting the width of the editor when the
content wraps. We were previously setting min-width, and I believe this
was from before we properly fixed all the width calculations (to ensure
we had a minimum, and didn't have it shrink unintentionally). Removing
the min-width setting doesn't seem to negatively impact any cases where
we've used an inlineEditor.