Ticket #47314 - Winsync should support range retrieval

Bug description: AD returns up to MaxValRange number of multi-
valued attribute values in one search. If more attribute values
exist, subtype ";range=0-(MaxValRange?-1)" is added to the type.
AD Client (DS in this case) has to repeat the search with
";range=MaxValRange?-*" then ";range=(2*MaxValRange?)-*" and so
on until the values with the subtype ";range=low-*" are returned.
Windows Sync plugin did not support the range search.

Fix description: This patch implements the range search for the
multi-valued attribute.

In addition,
1) For the search request, AD returns an attribute with no values
if it was deleted on the AD side even if the delete is one of the
multi-valued attributes. Windows Sync code was always adding the
attribute to the entry's e_deleted_attr list. This patch stops it
if there are more attributes having the same type existing in the
entry.

2) slapi_entry_attr_get_* APIs call slapi_entry_attr_find and set
the return value from the function to the value to return from the
APIs. slapi_entry_attr_find returns -1 if it fails to find the
attribute, which was returned if the type did not exist in the
entry.  This patch stops it and let slapi_entry_attr_get_* APIs
return the default return value 0 in case slapi_entry_attr_find
fails to find the type.

Reviewed by Rich (Thank you!!)

https://fedorahosted.org/389/ticket/47314
Ticket #47310 - Attribute "dsOnlyMemberUid" not allowed when syncing nested posix groups from AD with posixWinsync

Bug description: When Posix Winsync API plug-in is configured
with posixWinsyncMapMemberUid and posixWinsyncMapNestedGrouping
enabled (true), Posix Group added to AD is synchronized to DS
with mapped dsOnlyMemberUid and memberUid.  When adding a Posix
Group with the nested group member, addGroupMembership function
adds "dynamicGroup" to objectClass to allow the Posix Group entry
to have dsOnlyMemberUid.  The add should be made against the entry
in the memory since the entry is not yet stored in the database,
but it was trying to modify against the backend.

Fix description: This patch directly adds "dynamicGroup" to the
objectclass valueset, by which the attribute "dsOnlyMemberUid"
is allowed to add to the entry.

In addition,
1) when reflecting the mapped memberUid on DS to AD, the logic
was corrected to "if dsOnlyMemberUid matches memberUid",
2) when the Posix Group is nested in the multiple levels, the
mapped memberUid was not retrieved.  The code was added.

Reviewed by Rich (Thank you!!)

https://fedorahosted.org/389/ticket/47310