Core::Directory represents an existing directory on the system, and it holds an actual file descriptor so that the user can be sure the directory stays in existence.