LRU changes

When items are added to an LruSet that is full, the removed element used to be emitted separately from the added element, making it indistinguishable from a add+delete. This change emits them jointly (added element in `plus` argument and removed element in `minus`), making the whole procedure more like a singleton operation.

This also allows the LruMap to report items that are removed by means of LRU. (although this requires adding listeners, which you may not be keen on doing. I didn't see an easy alternative).

I am open to any feedback.