Client Part: Near-cache should use its own eviction/expiration mechanism

fixes #4016 

Main changes:
- Introduces `SyntheticEventFilter` which does not pass synthetic events to listeners
- Refactored `MapEventPublisherSupport` class
   - `ArrayList` used instead of `HashSet` in `publishEvent`