Attendee invitation support
See individual commits. Similar to earlier WIP PRs but ended up doing this from scratch being a little different and handling more special cases, e.g. modifying event later.
Not entirely finished backend yet:
- Event editing should be prevented if user is not the owner of the event. We don't at the moment have that information robustly available. Often plugin should know the email notebooks, but e.g. on google secondary calendars the owner is a random string account, not the common google user id.
- Not all existing bugs were fixed: doesn't send response update if deleting event user is invited to while trying to cancel events even if user wasn't the owner. Latter partly depends on previous ownership information.
- There's no information available, nor properties to use, for knowing if notebook or plugin actually supports sending invitations.
- The invitation plugin behavior and calendar service interoperability not really having too much attention yet. Hopefully those details would be in the invitation plugin side.