Default xcreate/xopen to O_CLOEXEC. (Pass O_CLOEXEC in the flags to switch it back off.)

This way we're not leaking filehandles to children from things like find -exec.
diff --git a/lib/dirtree.c b/lib/dirtree.c
index 85b1a3c..7ad699e 100644
--- a/lib/dirtree.c
+++ b/lib/dirtree.c
@@ -115,7 +115,7 @@
 
   if (dir) {
     if (flags & (DIRTREE_RECURSE|DIRTREE_COMEAGAIN)) {
-      new->data = openat(dirtree_parentfd(new), new->name, 0);
+      new->data = openat(dirtree_parentfd(new), new->name, O_CLOEXEC);
       dirtree_recurse(new, callback, flags & DIRTREE_SYMFOLLOW);
       if (flags & DIRTREE_COMEAGAIN) flags = callback(new);
     }