Move the DNBuilder implementation into the core ManagedObjectPath
class and add the following methods:
ManagedObjectPath.toDN()
Converts a ManagedObjectPath to a DN
ManagedObjectPath.matches(ManagedObjectPath)
Compares the two paths to see if they refer to the same location.
This differs from equals() which performs an exact comparisons
where types must match as well.
This will be required in order to support aggregations, where
property values are represented using just their common name,
but their LDAP encoding is the full DN.