Consider free disk space before downloading images into cache

This patch makes PXE driver ensure it has enough disk space
to actually download required images. If it does not, it tries
to make some space by starting cache clean up.

While it would be better to have this code in ImageCache itself,
by keeping it in PXE module we have the ability to clean up
both caches, not only current one, thus reclaiming more space.
We clean up instance image cache first, because:
1. It's probably larger
2. Instance images are not required for running instances,
   so they are more likely to be cleaned

In the follow-up patch I'll implement hints for clean_up()
call on how much space we need. Otherwise clean_up procedure
may think that nothing needs to be cleaned even though
we don't have enough space for new downloads.

This patch also adds ironic.common.images.download_size() helper
and makes master_dir attribute of ImageCache public.
One more side-effect on implementation is that values in pxe_info
dict are now tuples (as they are supposed to be), not lists.

Change-Id: I1e7294b6e7155d83e72cfd144abdca858cab0aae
Partial-Bug: #1316168
Merge "Consider free disk space before downloading images into cache"