Fixed race condition between simultaneous parrots creating the cache directory.  Check for the case where mkdir fails because the directory already exists.
Use mkdir rather than create_dir for subdirectories, to avoid n^2
traversal of the directory hierarchy.
Merge branch 'dthain-master'

This fixes a race condition in the creation of the parrot cache directory, by
treating mkdir returning EEXIST as a success rather than a failure. This might
solve a problem reported by Matthias Wolf re CMS jobs run on multi-slot
workers.