WL-3119 Use REQUEST method in calendars

This requires that an organizer and attendee is defined.
WL-3119 Event creator is not an attendee

We will keep the creator of the event as an iCal organiser but they should
not be an iCal attendee because it's quite possible that they will not be
attending.

Instead we will be assigning the meeting organisers as iCal chair attendees
and the attendees as iCal regular attendees.
WL-3119 Add participants by role

Abstracts the logic from add attendees to an event to a general role and
redefines `addAttendeesToEvent` accordingly.

Done with a view to add another `addChairAttendeesToEvent` method.
WL-3119 Add chair participants

Extends the API to allow the adding of a list of chair participants in
addition to being able to add a list of a required participants.
WL-3119 Specify calendar method

Extend the constructor for a Calendar to include the ITIP  method.

In particular this allows to specify special methods for ical attachments
such as `REQUEST` or `CANCEL` to improve the interaction with mail clients.

N.B. `REQUEST` method requires events have attendees and `CANCEL` requires
events have a `SEQUENCE` property.
WL-3119 Add sequence to cancelled events

Where modifications and cancellations are concerned a `SEQUENCE` value is
used to determine which order the changes happened in.

In this case we only use it for cancellations so it makes sense to set it
to `1` each time.
WL-3119 Attempt to stop email replies

We are using the `REQUEST` method to integrate with email clients for ical
attachments. The method requires some kind of response from the client.

This could result in organisers getting inundated with update emails from
attendees' email clients. This change attempts to surpress this.
Merge pull request #3 from ox-it/WL-3119

WL-3119 Use REQUEST method in calendars