Takes a path to a source file and cleans the path to it. This canonicalizes
things like “..” to components which preserve the “top down” hierarchy of a
static HTML tree. Each component in the cleaned path will be passed as an
argument to f. The very last component of the path (ie the file name) is ignored.
If a .. is encountered, the parent closure will be called to allow the callee to
handle it.