This is an update to
https://www.redhat.com/archives/libvir-list/2012-September/msg01443.html
Aside from the rebase, the main changes are all in the first patch,
where I believe I addresses all Erics feedback with one exception.
The exception was about the suggestion to support action-if-found,
action-if-not-found, instead of the 2nd variant of macro. This is
not actually possible, since the 2nd variant is not equivalent to
a pair of calls to the 1st variant.
To avoid flooding the list I've reduced this to just the first
9 patches. If these are approved there are another 30 patches
to follow doing more conversions :-)