Use unit_set to simplify code
ID is enough to get correct units, no need to filter by translation
Reverse logic of unit cleanup

We now record IDs of updates units and remove the rest. This way we can
also detect messages seen several times like issue #232.