Automatic dependencies between files, symlinks and directories

This should resolve #63. It also has the benefit of detecting collisions from defining files, symlinks or directories at the same path or defining a file to reside at a parent path to a directory, symlink or other file.

Note that this also obsoletes the static dependency of all files on all directories.