Use my_ip for neutron URL

Currently, neutron URL is set 127.0.0.1 in ironic.conf.
This patch fix this using $my_ip same as other component's URL
(for example glance).

Change-Id: I558fccc74058fcc493cbf52799fe021b12518253
Expose {set,get}_boot_device in the API

A new /nodes/<uuid>/management/boot_device subresource added exposing
ways to the client to {set,get} the boot device for a node.

* To set a boot device:

 PUT {'boot_device': 'pxe' } /nodes/<uuid>/management/boot_device[?persistent=<bool>]

* To get the current boot device:

 GET /nodes/<uuid>/management/boot_device[/supported]

 The /supported flag is used to list all the boot devices that is
 supported for that node.

Implements: blueprint new-management-interface
Change-Id: I7ab93b95112efb69cf7b2daab6bbd925cb2d1e02
Merge "Use my_ip for neutron URL"
Merge "Expose {set,get}_boot_device in the API"
Move code to cleanup ImageCache to a common place

This commit moves the cleanup code of ImageCache to a
common place in image_cache.py so that it can be accessed
from anywhere in the ironic source tree outside pxe driver.

It also introduces a new decorator @image_cache.cleanup()
for subclasses of ImageCache which wishes to be cleaned up.
This also has provision for providing a priority for the order
of cleanup.

Implements: blueprint cleanup-all-imagecaches
Change-Id: Idb54cee6cc1eee4f52ff07f8ca6e1f83378b2296