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
11 jobs for feat/sql_browser_monaco
Status Job ID Name Coverage
  External
running ERP5.UnitTest-Master

40540:12:06

running SlapOS.Eggs.UnitTest-Master.Python2

40540:10:31

passed SlapOS.Eggs.UnitTest-Master.Python3

00:15:04

failed ERP5.UnitTest-Master

01:58:29

passed ERP5.UnitTest-Master

passed SlapOS.Eggs.UnitTest-Master.Python2

00:34:26

failed SlapOS.Eggs.UnitTest-Master.Python2

00:32:40

passed SlapOS.Eggs.UnitTest-Master.Python2

00:34:20

passed SlapOS.Eggs.UnitTest-Master.Python3

00:14:00

passed SlapOS.Eggs.UnitTest-Master.Python3

00:15:56

passed SlapOS.Eggs.UnitTest-Master.Python3

00:14:18