Sane ICAL.Event time handling....

ICAL.Event was fairly dumb when it came to handling.. It would not update the type nor the TZID which caused a bunch of exciting problems as you can imagine...

Now when setting the startDate or endDate we will handle the property type conversion and TZID handling... The VTIMEZONE component adding/removing is not handled here but we should look at where that _should_ go soon. (Works fine manually obviously but it is not very clear how to handle that at this point).