daemon: Add comment about how zero_free_space would be better if we could do cancellation.
sparsify: Fix signal handling.

If you don't have a ^C (SIGINT) signal handler at all, then at_exit
handlers are not called so you end up leaving the large temporary
overlay file lying around.  That was fixed, incorrectly, by
commit 7283a5a2765c0670e9dceec70e626a49a30d269c.

However the code now would delete the overlay file in the SIGINT
handler but otherwise continue running until basically it tries to
read the overlay file (now deleted) and fails.  So it kind of worked,
by accident.

Fix this so that the signal handler calls exit, thus ensuring both
that the exit handler is called (to delete the file) and that the
program actually exits as soon as possible.

This also refactors the unlink_on_exit function into a utility.
sparsify: Test for qcow2 features instead of keying off qemu-img version.

Test whether qcow2 features are possible in qemu-img instead of
assuming they are by keying off the version.

Also use the 'lazy_refcounts' flag, if available.  It may make writing
to the overlay file marginally faster (however I tested it and there
was no measurable difference).