Recache or rebuild missing images on hard_reboot
Recache or rebuild missing images on hard_reboot

The primary purpose of this change is to provide the ability to
re-cache missing backing files on hard_reboot. The old
pre_block_migration function was already performing a very similar
operation. That function has been refactored to be idempotent and
renamed to _create_images_and_backing. The pre_block_migration
function is a wrapper, with some additional checking, around the
renamed function.

Image backend was also adjusted to look for either a missing backing
file or disk image, recaching or creating accordingly. It should
also be idempotent, never clobbering existing images.

Change-Id: Icf4c488d6db59e732b463d08d0606b428ee1e7b9

supermari0/ironic,SauloAislan/ironic,debayanray/ironic_backup,citrix-openstack-build/ironic-lib,bacaldwell/ironic,hpproliant/ironic,citrix-openstack-build/ironic,openstack/ironic,redhat-openstack/ironic,ramineni/myironic,NaohiroTamura/ironic,faizan-barmawer/openstack_ironic,Tan0/ironic,froyobin/ironic,emonty/ironic,rdo-management/ironic,naototty/vagrant-lxc-ironic,SauloAislan/ironic,faizan-barmawer/elytics,openstack/ironic-lib,rackerlabs/ironic,ionutbalutoiu/ironic,pshchelo/ironic,dims/ironic,faizan-barmawer/ironic-lib,citrix-openstack-build/ironic,devananda/ironic,naterh/ironic,varunarya10/ironic,openstack/ironic,NaohiroTamura/ironic,ionutbalutoiu/ironic,bacaldwell/ironic,naototty/vagrant-lxc-ironic,NaohiroTamura/ironic-lib,pshchelo/ironic,Tehsmash/ironic,JioCloud/ironic,dims/ironic