This adds utility functions join_paths() and normalize_path_slashes(), which do what they say and not other random surprising things, and a Path() class that can be used to automatically deal with paths in a chroot, without having to do a lot of joining and splitting yourself all the time.
It then uses these functions to clean up a lot of the EDD code, and adds some things to our testdata_log, so we can make test cases from strange machines we see in the wild. It also makes the EDD code notice and log when it would find more than one matching disk.