INT-3572: Improve Accept Once Filter Performance

JIRA: https://jira.spring.io/browse/INT-3572

Previously, a blocking queue was used to hold seen files; this was used to enable
FIFO when a max capacity is set.

When used with no capacity, a queue is not needed; also the `contains` operation
on a queue requires a linear search which does not scale well for a large number
of files.

Use a `HashSet` instead to significantly improve the `contains` performance.

Only maintain a queue if a max capacity is set.


__cherry-pick to 4.0.x__

Looks good anyway, although can we consider to use `Collections.newSetFromMap(new ConcurrentHashMap<F, Boolean>())` instead of those `synchronized (this.monitor)` to avoid that `single-thread` behaviour ?