/changes/: Support custom dashboards

A custom dashboard can now be shown in a layout similar to the
per-user dashboard, but with the sections entirely configured from
the URL. This makes custom dashboards stateless on the server side.
Users or projects can simply trade URLs using an external system
like a project wiki, or site administrators can put the links into
the site's GerritHeader.html or GerritFooter.html.

Dashboards are available such as:

  /#/dashboard/?title=Custom+View&To+Review=reviewer:sop@google.com&Pending+In+repo=project:tools/repo+is:open

This opens a view showing the title "Custom View" with two sections,
"To Review" and "Pending in repo":

  Custom View

  To Review

    Results of `reviewer:sop@google.com`

  Pending In repo

    Results of `project:tools/repo is:open`

The dashboard URLs are pretty trivial to configure. All keys and
values are URL query parameter encoded. Set the page and window
title using an optional "title=Text" parameter.

Each section's title is defined by the parameter name, section
display order is defined by the order the parameters appear in the
URL, and the query results are defined by the parameter value.
To limit the number of rows in a query use "limit:N", otherwise
the entire result set will be shown (up to the user's query limit).

Parameters may be separted from each other using any of the following
characters, as some users may find one more readable than another:

  & or ; or ,

Change-Id: Ie36fe5726d2ae2f7bf22d470f8a5608a576ff593
2 files changed