Add exists check to fetch_func_sync in libvirt imagebackend

This change adds a path exists check to fetch_func_sync to deal with
cases where a thread is waiting to acquire the lock while another
thread has the lock and is downloading the same image.  Without this
check the same image template will be downloaded multiple times.

Change-Id: Ib410903c7fd9d6954a8082391f89b42bac6a20d3
Closes-Bug: #1298420
Merge "Add exists check to fetch_func_sync in libvirt imagebackend"