Fixed bug with previous fix that caused multiple item descriptors to be sent

The previous fix, sorted out the memory leak on the receiver side,
but left an issue on the sender side where the item descriptor now
gets sent out on every get_heap.

Those item descriptors that have been sent are now tracked and explicitly
removed from the dict of descriptors to update. Not the prettiest code
but reasonably thread safe.