cal : Calendar functionality in Noi

The lino_noi.lib.cal adds calendar functionality.

A tested document

This is a tested document. The following instructions are used for initialization:

>>> from lino import startup
>>> startup('lino_book.projects.team.settings.demo')
>>> from lino.api.doctest import *
>>> ses = rt.login('jean')
>>> cal.Task(user=ses.get_user())
Task(user=187,priority=<xl.Priorities.normal:30>,state=<cal.TaskStates.todo:10>)

Don't read me

Verify the window actions of some actors (#2784):

>>> for ba in rt.models.cal.MyEntries.get_actions():
...     if ba.action.is_window_action():
...         print(ba)
<BoundAction(cal.MyEntries, <lino.core.actions.ShowInsert insert ('New')>)>
<BoundAction(cal.MyEntries, <lino.core.actions.ShowDetail detail ('Detail')>)>
<BoundAction(cal.MyEntries, <lino.core.actions.ShowTable grid>)>