Strip the line when computing the move detection minimum line length.

Move detection was considering the full length of a line when computing
line move thresholds, and that included whitespace. It now strips them,
so we don't have to deal with silly things like a massively indented
brace.
Provide pre-defined variables for .less files.

We now supply development and packaged .less files with a set of global
variables they can use when packagin. These provide a base path for
static files (to allow for importing defs and other files), debug
information, and version information, which can be used for LessCSS
guards to supply different rules for different versions of Review Board.

There's also a fix for building .less files. We didn't have
FORCE_BUILD_MEDIA set, causing issues building .less files, depending on
the development setup.
Remove extension-related styles that were moved to Djblets.

The recent Manage Extensions rewrite in Djblets brought over a lot of
CSS from Review Board, leaving only a few things we want to override.
This removes the rest.
Fix Perforce regressions with the new unicode string changes.

Perforce doesn't support setting unicode strings on its attributes, and
will raise an exception when they're set. We need to turn them into
utf-8 strings instead.
Improve the location of the "base-after-navbar" template hook.

This template hook was in a weird position before. It's, in theory, a
useful hook when you want to place something immediately after the
navbar, flush with the navbar, but instead it was in a container further
down that had padding around it.

This change moves it to be right after the navbar, and adds a new block
that the admin UI needed to place its sidebar.
Update imports for the new Djblets file restructure.

djblets.util is largely being split up, and while the old imports still
work, they emit deprecation warnings. This change updates Review Board
to use the new locations of the classes and functions it was previously
accessing from djblets.util.
Instantiate CodeMirror widgets on demand only.

This lightens MarkdownEditor to only instantiate a CodeMirror wiget as
needed. MarkdownEditor will now create it when show() is called, or when
the inlineEditor begins editing. It will then go away when hidden or
when editing is finished. It should reduce the memory footprint a little
bit. Though it's a bit hard to tell what the savings is, it looks like
it may be as much as 8-10MB.
Fix building the webapi docs.

My changes to define string types using six.text_type means that the type can
now be 'unicode' instead of 'str'. This works fine in the API, but the docs
generator didn't know how to interpret that.

Testing done: Built the API docs.

Reviewed at https://reviews.reviewboard.org/r/4992/