use Backgrid for system activity grid

This avoids the TurboGears DataGrid and @paginate decorator for the
system page, which gives us more freedom (for example having multiple
data grids on the system page, or to port the system page controller to
a Flask handler).

We can also defer loading the activity data until it's viewed for the
first time, which saves request processing time and bandwidth for all
the cases where the user is visiting the system page to do something
other than view activity.

Change-Id: I083a501290f9b4f504b540a7da575775a2d5a1c0
ported Reserve Workflow to Backbone, merged into a single page

Previously the Reserve Workflow was a three-step process: 1. pick distro
tree(s), 2. (optionally) pick system, 3. enter job options and submit.
This patch puts all three steps onto a single page, allowing them to be
completed in any order. In particular, this now lets us link to the
Reserve Workflow with the system pre-filled so that the user can pick
a distro and enter their job options. So we can link to the Reserve
Workflow from the system page, which is the ultimate goal of this patch.

The distro selection part of the widget is also extracted out so that it
can be re-used on the system Provision tab.

Change-Id: If2678f75e09bb42927730153bb6e8252f5b82ead
added "Reserve time" field to Reserve Workflow

This was available on the system Provision tab but never on the Reserve
Workflow, where it is more relevant.

Change-Id: I7fcfbab1894d3b1fc13e16709c23bf2d19210174
Provision tab on system page now always provisions directly

Also ported it to Backbone.

This is a second attempt at the final solution for bug 855333. That bug
was ultimately caused by the various ways that the Provision tab changed
its behaviour according to the state of the system.

Now the Provision tab always provisions directly, not through the
scheduler (we can link to the Reserve Workflow for that now). It always
appears regardless of the Automated/Manual status of the system. The tab
will be available whenever the user is allowed to provision the system:
typically, while they have reserved it or if they are its owner (or
granted in its access policy).

Change-Id: I5839e33fb60c6404302d0c21bc9d4c40870a5070
Take and Return buttons in system quick info

These replace the buttons which previously lived in the User cell of the
system form.

Change-Id: I0bed831fd5d7a6a3d86423d9d7f241a2c9a37e7d
request user confirmation before provisioning

Provisioning is a destructive operation (even more so than power
control, which we already require one or sometimes two JavaScript
confirmations for) so it warrants a confirmation dialog.

Change-Id: Iee48be9c16ee34f2515bdd059162ba8a325c7ddd
use Growl-like notifications to indicate successful provision

This gives us a standard mechanism to indicate that an action has been
completed successfully, when there are no other changes in the UI to
indicate that a request was successful.

Change-Id: I78c2cfd7af502b12cd79b68642990ac41e9f5bee
Request loan and Report problem buttons in system quick info

These replace the buttons which previously lived behind a "System
Actions" modal in the Owner cell of the system form.

Change-Id: Ic3b02ea707a778946ba4b5e3346c902eed2fe1f4
wire up access policy widget with the rest of the system page

Also tweaked a few things to make the widget behave more similarly to
the other system page widgets.

Change-Id: If855cf46e567fe451c6ae81e1582af9dd6da263e
make system.fqdn unique

Change-Id: Ica0056f49bcca2d5305971dc14d83cbc0731c667
modal for renaming systems

The system form included a field for the FQDN which allowed the user to
rename the system. That doesn't really fit anywhere else, so this patch
adds a modal for renaming the system.

Change-Id: Ibc664f0cb56343eb00bdfe69ec10e16b69996583
ported system commands tab to Backbone

Change-Id: I7a56a3a685431f917073b4498fc83bff5391be9e
make page sizes configurable in @json_collection

... instead of hard-coding all the various numbers. Users of the
decorator can pass in custom values or accept the defaults, but either
way it makes @json_collection a little more readable.

Change-Id: I27903ff5820898b2b59165f5c48128359de3db77