Ironic: Setup/Configure iPXE

Setup the enviroment and configure Ironic to use iPXE for deployments. If
IRONIC_IPXE_ENABLED enviroment variable is True, DevStack will now start
and configure an Apache HTTP server to serve the images, will copy the
undionly.kpxe boot file in place of the standard pxelinux.0 and will set
the right configuration to Ironic to deploy the images using iPXE+HTTP.

Implements: blueprint ipxe-boot
Change-Id: I0ea40cb8bbf9236c634f803c2bde1081634679ff
Utility functions for building test images

These functions allow images to be built using diskimage-builder which
contain packages built from local project checkouts:
build_dib_pip_repo() - Builds a local pip repo from local projects and configures
                       apache to serve it
disk_image_create_upload() - Creates and uploads a diskimage-builder built image

The unused function lib/heat disk_image_create has been deleted.

Change-Id: Ia75c7c35bfd48dbe6ae3cb9c3241de0b598cbf84
Build an image for heat functional tests

This is only triggered if HEAT_CREATE_TEST_IMAGE is True

This custom image contains the following:
* heat-cfntools from git rather than the packaged version, which
  will allow gating on heat-cfntools changes
* os-collect-config, os-apply-config, os-refresh-config, which
  will allow gating on these projects, and will allow heat
  software-config tests to be written
* software-config hooks from heat-templates, which will allow tempest
  tests to be written for software-config with different configuration
  tools (script, puppet, cfn-init etc)

The heat functional tests will soon replace the heat-slow tempest job,
so heat-slow tempest configuration will be removed after the heat
functional test job is gating.

Change-Id: I2e0490c1662a184d4c6d8c7e9ebb128e1912f1b0
Merge "Ironic: Setup/Configure iPXE"
Merge "Utility functions for building test images"
Merge "Build an image for heat functional tests"
Merge branch 'master' into csr1kv_for_routing_juno_minimal