Ticket 47766 - Tombstone purging can crash the server if the backend is stopped/disabled

Bug Description:  The tombstone purge thread issues a callback search that will start
                  reading id2entry, even if the backend is stopped.  This can crash the
                  server.

Fix Description:  When performing a search and returning entries, check if the backend
                  is started before reading id2entry.

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

Reviewed by: nhosoi(Thanks!)
(cherry picked from commit 559d70e0a1e3df75a66e41fd1c009b25ca6f6a08)
Ticket 47767 - Nested tombstones become orphaned after purge

Bug Description:  If there are nested tombstone entries, the parents will
                  always be purged first, which leaves its child entries orphaned.

Fix Description:  When doing the tombstone purge, process the candidate list in
                  reverse order, which will remove the child entries before the
                  parent entries.

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

Reviewed by: nhosoi(Thanks!)
Ticket 47771 - Performing deletes during tombstone purging results in operation errors

Bug Description:  An operations error can occur when deleting entry while
                  tombstone purging is happening.  The error occurs when it
                  tries the lock the parent entry, but the parent entry was
                  replaced in the cache before it could be locked.

Fix Description:  Return a special error code when cache_lock_entry fails because
                  the entry was marked as deleted.  Then try to grab the entry
                  again and lock it.

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

Reviewed by: rmeggins & nhosoi(Thanks!!)
(cherry picked from commit 844d09d0700fca7aa64a2453d99e7c274a76e784)