Fix for
https://github.com/matrix-org/synapse/issues/13856
Fixed by calling `_invalidate_caches_for_event`
when we persist an event.
And an additional fix in `_invalidate_caches_for_event`
to make sure it uses the correct cache key. This seems
like it would be an easy foot-gun for any `tree=True`
cache.
Wrong:
```py
self.have_seen_event.invalidate((room_id, event_id))
```
Correct:
```py
self.have_seen_event.invalidate(((room_id, event_id),))
```