xcache: Track chmod.

This brings us to a level where we can successfully trace gcc compiling the
following trivial program:

 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>

 int main(int argc, char **argv) {
     printf("hello world\n");
     return 0;
 }

Unfortunately the output binary, a.out, seems to be getting cached as an input
rather than (or as well as) an output. Likely GCC does some check on this to
start up. Perhaps this is correct behaviour, but requires further
investigation.