Sorry, but I have lots of questions here.

  * What is this loop doing? Making sure something only appears once if we see the same UTI more than once? But won’t this only work if you see the same thing back to back? That won’t always be the case, will it?
  * Couldn’t we avoid several trips to the disk by using the already cached UTI? That is, use `splitObjects` or `arrayForType:QSFilePathType` to get the objects, then call `fileUTI` on each instead of using `QSUTIOfFile(path)`.