Serve up the requisite bootloaders for UEFI systems.
Add provisioner support for netbooting in UEFI.

This adds mostly-functional support for enabling compute node bringup
using UEFI netbooting instead of PXE booting.  It is a necessary step
in enabling support for partitions > 2TB for the OS partition.
Merge pull request #55 from VictorLowther/pull-req-feature-uefi-netboot-master-ebbb8425c5

Add basic semi-functional support for UEFI netbooting [2/6]
Update provisioner proposal template to contain online mode metadata.

This adds places in the default provisioner tmeplate to add the
metadata we need to install an OS over the Internet.  Currently we
only add support for CentOS and Ubuntu.
Hack up the provisioner to enable ISO-less OS installs in online mode.

Once the provisioner is flipped into online mode, it will stage
everything needed to deploy operating systems without needing an ISO
image. It is driven by metadata from the provisioner proposal.
Merge pull request #56 from VictorLowther/pull-req-feature-more-online-mode-master-c4c71f9c98

Remove the requirement to have ISO images in provisioner online mode [1/6]
Add efiboormgr to required packages.
Move some of the PXE state machine from Chef to Crowbar.

This moves resposibility for updating the provisioner state for a node
from the update_nodes recipe into the provisioner service.

This lays some groundwork for hetero OS support by making it easier to
fail if we cannot install an OS.

It also lays some groundwork for automating UEFI installation by
directly exposing what PXE state the provisioner thinks they are in.
Switch to using IP based config file templated for pxelinux.

This will help keep things sonsistent in the upcoming refactor.
Move most template file generation from setup_base_images to update_nodes

This more cleanly seperated responsbilities, and lays the groundwork
for having per-node config files for everything.
Create per-node OS install files instead of using shared ones.
Give the volume group a meaningful name
Make sure efibootmgr is present on all nodes.
Make control.sh delete chef-client.pem before every Chef run.
Rejigger how update_nodes deletes nodes to make it a little more consistent.
The main Crowbar webapp handles deleting nodes, we no longer have to.

This also gives us one last chef-client run on a node if it is
transitioning away from execute state in the provisioner.  This makes
sure boot ordering is sane, and allows for an oppoutunity to clean
things up.
Make the provisioner call blocking_chef_client instead of single_chef_client.

We need to wait for chef-client runs to finish before deleting the node,
otherwise we will not clean up our DHCP and netboot templates.
Fix ordering of recipes in provisioner-server role.
Make testing for syslinux a little more reliable.
Merge pull request #59 from VictorLowther/pull-req-feature-uefi-netboot-master-82efb46562

Pull in complete UEFI network boot support. [3/7]