Fixed a bug with deleting errors from Isolation Queues

Previously, if an isolation queue item hit an error and got put into the error queue, the additional "latest entry" keys used by the isolation queue to dedup items with the same key would remain populated for that item.

This was fine if the item ended up being requeued as they would ultimately end up getting cleaned up as part of normal processing.

However, if the error items were deleted the "latest entry" keys would hang around causing any new items with that key to never be processed.

This fix adds a callback mechanism allowing the isolation queue to perform this cleanup in response to queue item deletion.

@nrschultz