Integrating processing for iTip (rfc5546)

[iTip][1] describes the rules for processing scheduling messages, whether that's for [CalDAV scheduling (rfc6638)][2] or [iMip (rfc6047)][3].

The new classes help with processing. It allows a user to parse an incoming iTip message and apply the result on some event. It can also look at an old an a new event (in case of an update) and infer from those events which attendees should receive which updates.

Note that this is a PR, but this branch is not complete.

### Todo

- [ ] 100% test coverage of the new classes.

[1]: http://tools.ietf.org/html/rfc5546
[2]: http://tools.ietf.org/html/rfc6638
[3]: http://tools.ietf.org/html/rfc6047
Not sure if you loke it, but could also be written with `compact()`