Pass the destination file name to download modules

Currently an open file like object is passed into the image service
and thus into the download modules.  This is a limiting for certain
optimization (system calls to copy, hard links, external services,
out of order protocols like bittorrent, etc).  This patch passes the
file name into the image service when used by the nova.virt.images.
The previous means of passing in a data stream is still supported
but cannot be used with download modules.

Change-Id: Id17d426faab8d63dcffca22b300ebac3f15c104a
blueprint: image-multiple-location
Merge "Pass the destination file name to download modules"