Modernize our Getting Started guide.

This adds some useful missing information to Getting Started and removes
some old information.

The Windows steps are now gone, since we're not supporting development
on Windows without a VM.

The post-review instructions have been rewritten to reference rbt post,
and to encourage usage of -g and -u.

There's also some info on how to update your database when there are
schema changes.
Improve the structure and presentation of the Dashboard sidebar.

The Dashboard sidebar was pretty old, and is extensibility was not very
good. This change throws out all the old code, replacing it with a
nicer architecture and design.

DashboardDatagrid now has an instance of Sidebar, which works as a
container for BaseSidebarItem subclasses. Each item added will be
rendered when rendering the sidebar.

We provide two built-in subclasses: SidebarSection, and SidebarNavItem.
These are used to create the sectioned lists of links we use, along with
the counts.

Extensions can provide their own subclasses, which can override the
template and render custom data if needed. There aren't yet hooks for
this, but that will come in another change.

The design and organization has also changed. Instead of
"Starred Reviews," "Outgoing Reviews," "Incoming Reviews, "Watched
Groups," and "All My Requests," there's now only two sections:
"Outgoing" and "Incoming".

"Outgoing" has nav items for "All" and "Open," replacing "Outgoing" and
"All My Requests."

"Incoming" has "Open" (replacing the former link on "Incoming" itself),
"To Me", "Starred" (if there are any starred review requests), the list
of subscribed groups, and the list of watched groups.

The display is a bit nicer. The section labels are little larger and
don't have "Reviews" or "Requests" in the names. The counts are now
little bubbles showing the counts instead of free-floating text. The
current Dashboard view is also shown on the side, by making the
appropriate nav item appear selected.

There's also a couple CSS fixes for handling scrolling when there are
more items than screen space.
Fix our LocalSite permission wrapper on Django 1.6.

The LocalSite permission wrapper broke on Django 1.6, due to
PermLookupDict renaming module_name to app_label.

This updates our calls to use the new name. It also adds unit tests to
ensure we catch any breakages in the future.
Move the user page to the new sidebar classes.

The user page has been updated to use the new sidebar code for the
profile and group information. This improves the rendering of the
groups, makes the page easier to maintain, and also improves
extensibility.

With this, the existing hooks are now useless, and will be removed in a
future patch.

I've also cleaned up how the two different modes for the sidebar work
(scrolling vs. fit-to-content). A "scrollable" CSS class on the sidebar
puts the sidebar into scrolling mode. The default is now fit-to-content.
Fix population of incoming request count on groups for the sidebar.

Due to the way we were loading the data for groups on the sidebar, we
weren't always showing counts for groups. If the incoming request count
wasn't previously calculated (or was reset, such as on upgrade), we
simply wouldn't show a counter until that group was next loaded by the
user in some way.

We now load the groups in a normal way, instead of using values().
Issue 3215 - Fix overflowing email addresses in user info popup.

For long e-mail addresses, the info popup that's shown when hovering
a username would have the address overflow outside the box's
boundaries. This was pretty ugly.

We've restricted the width of the e-mail address, and now wrap them
instead.

Reviewed at https://reviews.reviewboard.org/r/5422/.
Allow users to submit by "enter" keypress on #search_field

This addresses Issue 3032, where the Search cannot be completed by pressing the
enter key.

Once the user inputs a text in the serach field, the jQuery UI attempts to
autocomplete the query. Currently, the search can only be completed through a
mouse click. On enter keypress, the autocomplete adds a comma do the currently
selected input and seeks for another query, but does not redirect.

This has been fixed by adding a new "option" on the ui.autocomplete.js
ui.rbautocomplete module, called enterToURL. This closely mimics the already
existing clickToURL by simply listening to the enter keypress and calling the
click event when the user presses a selected item.

Additionally, the "multiple" option was set to false, which disallows users to
search for more than one query at a time.

This does not modify the behaviour of other autocomplete text boxes as it uses
a new option that is by default false.

Testing Done:
I typed my username "mirai" in the search field, and select the option by using
the arrow keys. Once enter is hit, the search redirects to my user page.

Other random text queries including reviews work as well.

/js-tests pass 100%

Bugs closed: 3032

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