new lab controller daemon to execute power commands

This commit introduces a new daemon on the lab controller,
beaker-provision, which monitors the server-side power command queue and
executes power commands as they are found. This replaces the use of
Cobbler for powering systems (though the rest of the provisioning is
still done with Cobbler).

Bug: 784165
Change-Id: Ice49f6fc32d0826a488b74df7a13ed5f69e6c3d4
expanded distro schema for native provisioning

This introduces a new layer in Beaker's model for grouping together all
the variant-arch combinations for a particular distro. What was
previously a "distro" is now a "distro tree". All Cobbler-isms are
removed. For provisioning purposes we now store repo and image paths for
each distro tree.

Bug: 800687
Change-Id: Ib6c46db5d090140f602d0a51f6c312bf512e86f4
generate kickstarts in Beaker

When a system is provisioned we generate a kickstart and store it in the
database to be served up later. Beaker's system of Cobbler kickstart
templates and snippets written in Cheetah are replaced with equivalent
Jinja templates, including a new test suite for the templates.

Bug: 781917
Change-Id: I11b102a0eecafedf91c1cf0b4058647b3de4043a
add support for excluding repos by type

For example setting ks_meta="no_debug_repos" will cause debug repos to
be skipped in the kickstart.

Change-Id: Id2da6bc6ea751c177583e675d2d760a954567729
add a couple of extra utilities for kickstart templates

Change-Id: Icb026b73b8b528a51777d184ed4b54b6233b8f3c
Merge changes Icb026b73,Id2da6bc6,I11b102a0,Ib6c46db5,Ice49f6fc into release-0.9.0

* changes:
  add a couple of extra utilities for kickstart templates
  add support for excluding repos by type
  generate kickstarts in Beaker
  expanded distro schema for native provisioning
  new lab controller daemon to execute power commands
clean up a few remaining Cobbler-isms that slipped through
make distro names clickable in distros grid

Change-Id: Ib9c6d4bb327e2059971a9f4dee8ef2e9ca59b12c
populate distro.date_created from tree_build_time

This will also fix sorting of distros on the reserve workflow page,
which is by this column.

Change-Id: I280148d51ce41b2a01c21407d52b1909883dd4f0
show 'Distro Tree' column in tasks widget on distro page

I also realised we can remove the 'Arch' column in all cases, since arch
is part of the distro tree.

Change-Id: I770f5a179b1ec6c8bb05272b0493321ff668a506
add missing Requires: python-jinja2
display repos and images on distro tree page

Change-Id: I8976f380adbd20b7af124fdb4344b58a1d513d74
Merge changes I8976f380,I770f5a17,I280148d5,Ib9c6d4bb into release-0.9.0

* changes:
  display repos and images on distro tree page
  show 'Distro Tree' column in tasks widget on distro page
  populate distro.date_created from tree_build_time
  make distro names clickable in distros grid
Updated beaker-import

stripped of cobblerism's and updated to handle new distro schema
Change-Id: I78fab4b9891c070cbbd5051deb5c55b0d370cfaf
Merge "Updated beaker-import" into release-0.9.0
treat 'reboot' as 'off' followed by 'on'

That's how Cobbler does it.

Change-Id: I54d281d6d1a3893c27b40bf47d4ea654f30838ae
fix -c option to beaker-proxy

Change-Id: Idb0e8701b0be0676aa17b6dd74a6c35286933bf7
bare except: clauses are evil

Change-Id: I574fb51ba8b8cb345cd34aaf9ab416971311049d
add netboot support to beaker-provision

Bug: 781914
Change-Id: I49311f16785e48986464c387154d76c494e4a317
fix up tests for Cobbler removal

Change-Id: I956b0b5642e256167fc1794f9442f30b2d838f23