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