calendar: More fixes with exceptions when not repeating

The fixes from !630
were not enough, exceptions set on days were calendar did not repeat
were also confusing other exceptions after this.

Simplify implementation a lot, instead of keeping track of the next
exception date, start by building a set of all exceptions dates and
use membership of this set as a criterion to skip exceptions.

/reviewed-on !1030
.gitlab-ci.yml not found in this commit
Status Job ID Name Coverage
failed ERP5.UnitTest-Master

passed SlapOS.Eggs.UnitTest-Master.Python2

No job trace