imported openchange_user_cleanup script from old version

This is for ldb backends
Set prev when splitting a range on deletion

If it was not set, then DLIST_REMOVE was crashing
as it was impossible to rebuild the proper list.
Merge pull request #126 from sixstone-qq/ejhernandez/fix-split-range-on-delete

Set prev when splitting a range on deletion
user_cleanup_script updated for mysql backends
openchange_user_cleanup: pretty format and --ignore=sogo|openchange|imap option
openchange_user_cleanup: typo in help
Use DLIST macro whenever possible

This avoids crashes when manipulating the double-link lists by hand.
openchange_user_cleanup: change regexp format to get connection strings
openchange_user_cleanup: ignore default to empty list
openchange_user_cleanup: enable autocommit
openchange_user_cleanup: drop sogo table instead of truncate data
Merge pull request #128 from sixstone-qq/ejhernandez/idset-ranges-manipulation

Use DLIST macro whenever possible
Merge pull request #127 from openchange/jgarcia/user-cleanup-script

user cleanup script
Use new 4.0 old repo to retrace old crashes
Fix #CR-633 in oxcfxics on folder change

Set retval while getting specific props from a openchange db table row.

The problem comes from the `retvals[i]` is overwritten in L1789 so we
have to store the retval in the local variable likewise other switch
functions does.
Merge pull request #132 from sixstone-qq/ejhernandez/fix-crash-folder-change-oc-db-folder

Fix #CR-633 in oxcfxics on folder change
Remove prototypes already defined by flex.

This prevents conflicting prototype errors for yyget_leng with some versions of flex.
CR-131 and CR-50: Fix sync FAI messages when Only Specified Properties is set at RopSyncConfigure

This avoids leading to crash on getting FAI properties in sync operations
when OnlySpecificProperties and FAI synchronisation flags are set.

This also implements IgnoreSpecifiedOnFAI flag according
to the [MS-OXCFXICS] page 131 specification:

   If the OnlySpecifiedProperties flag is set and the IgnoreSpecifiedOnFAI flag is not set, the
   server writes only the specified properties and subobjects for all messages to the FastTransfer
   stream.
   If the OnlySpecifiedProperties flag is set and the IgnoreSpecifiedOnFAI flag is also set, the
   server MUST write only the specified properties and subobjects for all non-FAI messages to the
   FastTransfer stream. For FAI messages, the server MUST write all properties and subobjects to the
   FastTransfer stream.
Add a mapitest to crash on ModifyRecipients

When the number of additional properties in a recipient row is lower
than the number of additional properties set by ModifyRecipientsROP.

Adapt IMessage.c to set the proper prop_count in recipient row
by counting the added properties instead of blindly set the ModifyRecipientsROP
property count.
Fix CR-657: RecipientRow prop number is lower than ModifyRecipientsROP prop count

Instead of crashing when trying to get properties which are not
set, we set the data to NULL and at mapistore level the property count
is equal for all recipient rows.