private CategoryPath rehomeCategoryPathSubTree(CategoryPath origRoot, CategoryPath newRoot,
			CategoryPath cp) {
		if (origRoot.equals(cp)) {
			return newRoot;
		}
		List<String> origRootParts = origRoot.asList();
		List<String> cpParts = cp.asList();
		if (cpParts.size() < origRootParts.size() ||
			!origRootParts.equals(cpParts.subList(0, origRootParts.size()))) {
			return null;
		}
		return new CategoryPath(newRoot, cpParts.subList(origRootParts.size(), cpParts.size()));
	}
Moves previously imported DataTypes from the /DWARF/_UNCATEGORIZED_ folder into
folder /DWARF/source_code_filename.ext/...
<p>
When moving / renaming DataTypes, you only need to worry about named DataTypes.
Pointers and Arrays, which can only exist by referring to a named DataType, get
moved / renamed automagically by the DataTypeManager.
<p>
After moving each DataType, if the folder is empty, remove the folder.

@throws CancelledException
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFImporter.java