The LDAP identity code had many circular dependecies between
data objects due to the need to look up DNs from ID. This change
pulls the lookups into the driver layer, and modifies most of the
data objects to take DNs in as their parameters instead. Only objects
that know how to look up their own DNs from thei IDs will continue to
take IDs in, to support the "get" methods.
Change-Id: I0bac360650ccbf72c7ca8317997031420f66e4f3