Perform unicode migration for reviewboard/accounts

This change represents an audit of all of our string literals to make sure that
bytestrings are annotated with a leading 'b', and then adds "from __future__
import unicode_literals" to the beginning of every non-empty file. This also
includes a string-related change to use six.text_type for python 2/3
compatibility.

Testing done:
* Ran unit tests
* Smoke tested login/logout/settings

Reviewed at https://reviews.reviewboard.org/r/4957/
Perform unicode migration for reviewboard/attachments

This change represents an audit of all of our string literals to make sure that
bytestrings are annotated with a leading 'b', and then adds
"from __future__ import unicode_literals" to the beginning of every non-empty
file.

Testing done: Ran unit tests

Reviewed at https://reviews.reviewboard.org/r/4959/
Perform unicode migration for reviewboard/changedescs

This change represents an audit of all of our string literals to make sure that
bytestrings are annotated with a leading 'b', and then adds
"from __future__ import unicode_literals" to the beginning of every non-empty
file.

Testing done: Ran unit tests

Reviewed at https://reviews.reviewboard.org/r/4960/
Perform unicode migration for reviewboard/cmdline

This change represents an audit of all of our string literals to make sure that
bytestrings are annotated with a leading 'b', and then adds
"from __future__ import unicode_literals" to the beginning of every non-empty
file.

This also fixes up some file open calls to use 'with'.

Testing done: Smoke tested rb-site and rbssh
Reviewed at https://reviews.reviewboard.org/r/4961/
Perform unicode migration for reviewboard/diffviewer

This change represents an audit of all of our string literals to make sure that
bytestrings are annotated with a leading 'b', and then adds "from __future__
import unicode_literals" to the beginning of every non-empty file.

This also includes some changes to use six.text_type for python 2/3
compatibility and updates file opens to use 'with'.

Testing done:
* Ran unit tests
* Smoke tested the diff viewer

Reviewed at https://reviews.reviewboard.org/r/4962/
Perform unicode migration for reviewboard/extensions

This change represents an audit of all of our string literals to make sure that
bytestrings are annotated with a leading 'b', and then adds
"from __future__ import unicode_literals" to the beginning of every non-empty
file.

Testing done: Ran unit tests
Reviewed at https://reviews.reviewboard.org/r/4963/
Perform unicode migration for reviewboard/hostingsvcs

This change represents an audit of all of our string literals to make sure that
bytestrings are annotated with a leading 'b', and then adds
"from __future__ import unicode_literals" to the beginning of every non-empty
file. This also includes some changes to use six.text_type for python 2/3
compatibility.

Testing done: Ran unit tests.

Reviewed at https://reviews.reviewboard.org/r/4964/
Perform unicode migration for reviewboard/notifications

This change represents an audit of all of our string literals to make sure that
bytestrings are annotated with a leading 'b', and then adds
"from __future__ import unicode_literals" to the beginning of every non-empty file.

Testing done: Ran unit tests

Reviewed at https://reviews.reviewboard.org/r/4965/
Perform unicode migration for reviewboard/site

This change represents an audit of all of our string literals to make sure that
bytestrings are annotated with a leading 'b', and then adds
"from __future__ import unicode_literals" to the beginning of every non-empty
file. This also includes a change to use six.text_type for python 2/3
compatibility, and marking some additional strings for translation.

Testing done: Ran unit tests

Reviewed at https://reviews.reviewboard.org/r/4972/
Perform unicode migration for reviewboard/ssh

This change represents an audit of all of our string literals to make sure that
bytestrings are annotated with a leading 'b', and then adds
"from __future__ import unicode_literals" to the beginning of every non-empty
file. This also includes some changes to to use six.text_type for python 2/3
compatibility, and using 'with' for file opens.

Testing done: Ran unit tests.

Reviewed at https://reviews.reviewboard.org/r/4973/
Fix for LDAP authentication with LDAP servers that don't allow anonymous searches

When authenticating a user for login, the current code does an anonymous search
to find the user, and then attempts to bind as that user when the search
results contain that user. This is a problem since some LDAP servers do not
allow anonymous searches. Fix is to do the anonymous search still, but if the
search results in no entries, attempt to bind as that user anyways by
constructing DN from the username plus configured base DN. If the search does
contain the user, use the DN in the returned result.

Testing done:
Tested in-house with LDAP server that doesn't respond to anonymous searches.

Reviewed at https://reviews.reviewboard.org/r/4953/
Switch over to django.contrib.auth.views.login

Once upon a time, django.contrib.auth didn't have a built-in login view. As of
about half a decade ago, it does. This means we can kill the one in djblets,
which isn't nearly as well maintained.

This change switches us over to the new view and form, which works pretty
similarly to the old one. The major differences are in the naming of the error
fields, 'next' vs. 'next_page' (which I'll deal with once I stop using
djblets.auth.util.login_required), and CSRF protection.

Testing done:
* Tried to login with an invalid username and password and saw the right error.
* Tried to login after fiddling with the CSRF token and saw a 403.
* Logged in with a valid username and password and was redirected to
  /dashboard/
* Checked that when I accessed a page when logged out I was redirected to log
  in, and then once I logged in, I was redirected back to that page.

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

This change has been cherry-picked from the master branch.
Merge branch 'release-1.7.x'
Upload Review Board releases to Amazon S3.

We're now using Amazon S3 to store all our releases. This updates our
release script to do that. It requires our new 'fabazon' module to help
interface with S3 and perform S3 uploading and directory index
regeneration.
Merge branch 'release-1.6.x' into release-1.7.x
Merge branch 'release-1.7.x'
Merge branch 'release-1.6.x' into release-1.7.x
Merge branch 'release-1.7.x'