Add setValue function to inline editor widget.

This change adds a utility function to set the value of an inline editor,
regardless of whether the editor is open or not.

Testing Done:
Used this in conjunction with another pending change to add reviewer
suggestions. Opened a review request, clicked on a reviewer suggestion (which
triggers a call to appendToFieldValue, ensured that the suggestion was filled
into the inline editor. Hit OK and ensured that it was saved in the editor. Did
the same with cancel to ensure that it was not remembered.

Reviewed at https://reviews.reviewboard.org/r/5030/
Fix building translations on pristine systems

If we are attempting to build on a system without an existing copy of Djblets
installed in a reachable location (such as distribution packaging), we need to
ensure that the source directory is in the PYTHONPATH or the import of
djblets.util.filesystem will fail.

Testing Done:
With this patch, I was successfully able to build Djblets for Fedora.

Reviewed at https://reviews.reviewboard.org/r/5300/
Finish porting djblets to Python 2/3 compatibility.

This change finishes up the last bits of djblets for Python 2/3 compatibility.
Most of this was just left-over pieces from my previous efforts, with a little
bit of newly-written code sprinkled in.

Testing done: Ran unit tests.
Add a new Extension.initialize function for doing initialization.

Previously, custom extensions would subclass __init__, take the required
arguments, call the parent function, and perform initialization. In
order to simplify this a bit, extensions can now choose to override
initialize() instead, which will be called by __init__.

This function does nothing by default, and does not need to be called by
the subclass. That simplifies extensions, saving some code.