Fix Dashboard to-group for unjoined public groups

This change updates the dashboard to use Group.is_accessible_by instead of
limiting things to users' joined groups. This allows users to use the dashboard
to see watched groups as well as joined groups.

Testing Done: Ran unit tests.

Bugs closed: 3204

Reviewed at https://reviews.reviewboard.org/r/5396/
Merge branch 'release-1.7.x'
Merge remote-tracking branch 'origin/master'
Allow review request names to wrap in admin lists.

Our admin styles had "text-wrap: nowrap" for <th> tags, which was meant for the
column headers, but the primary column (review requests summaries, for
example) also used th. This change fixes that style definition to only apply to
descendents of <thead>.

Testing done:
Created a review request with a really long summary and loaded
/admin/db/reviews/reviewrequest. Saw that things didn't look ugly.

Fixes bug 2125.

Reviewed at https://reviews.reviewboard.org/r/5402/
Move the datagrids code out into reviewboard.datagrids.

The datagrids code is a hefty portion of reviewboard.reviews, and is
going to be heftier soon. Especially considering it was bundled into one
big file. It also felt strange to have extensions import from
reviewboard.reviews.datagrids for things that weren't related to review
requests.

This introduces reviewboard.datagrids, which contains all the columns,
datagrids, URL mappings, and views.

The datagrid and column code have been untouched, with a couple
exceptions. I rearranged the columns to be in alphabetical order,
renamed StarColumn to BaseStarColumn, added a missing localization for
the label for NewUpdatesColumn, and replaced double quotes with single
quotes. No logic has changed anywhere.
Post-process usernames from LDAP/AD before getting/creating User objects.

LDAP and AD usernames have basically no rules, while django usernames have lots
of rules. This change makes it so people log in using the username that they
normally have, but the username stored in Review Board will have all the junk
stripped out.

This fixes numerous issues that people have encountered, such as:
- Case insensitivity would cause multiple users to be created in Review Board
- Usernames with spaces or special characters would cause URL resolution and
  form validation failures, since the db backend didn't enforce the rules but
  our URL regexes and form fields did.

Testing done: Ran unit tests.

Fixes bugs 1478, 1674, 2924.

Reviewed at https://reviews.reviewboard.org/r/5406/
Change the "Getting Started" doc to recommend rebase over merge.

Using merges can be annoying and error-prone with a more-or-less centralized
development model, and I think this instruction has caused more than a couple
mistakes (the latest one being where one of our students merged his branch into
master, rather than the other way around).

This commit changes it to suggest rebase instead. While rebase can also be
annoying and error-prone, I think it's probably more likely to help people keep
a clean history.

Testing done: Built the codebase doc and saw the new text.

Reviewed at https://reviews.reviewboard.org/r/5399/
Fix issues with prepare-dev.py and rb-site.

There were a couple issues in running prepare-dev.py with django 1.6. The first
one was that rb-site was still using execute_manager, which has been deprecated
roughly forever. That has finally been removed, so we need to switch to
execute_from_command_line. Second, we weren't getting a useful error message,
because prepare-dev was invoking commands in rb-site without the 'ui' variable
being set to anything.

Testing done: Ran prepare-dev.py successfully.

Reviewed at https://reviews.reviewboard.org/r/5409/
Properly shut down all the new extension hooks.

The new extension hooks weren't calling the parent shutdown() functions,
preventing them from properly unregistering themselves. This fixes them
to all call the parent methods.