Included a boolean Preinitializer.IGNORE_ORIENTATIONS that tells the program not to reject configurations on the basis of orientations. Split the method PatchAndIndex.compatible(p) into two methods: fullyCompatible and semiCompatible. The former is the same as the old compatible, while the latter only checks to see if edges of the same length have the same edge breakdowns (by length only)
Fixed it so that now the semiCompatible method really only looks at the lengths in an edge breakdown.