[caldav] Improve updating of incidence properties from server version

Incidence property setter functiions should only be called if the data
has changed, as KCalCore Incidence, Event types etc. will modify their
internal data even if the new property value is the same as the current
one.

Also, the serialization for recurrence data copying should be done
before other properties are copied to avoid overriding those changes.

Also, the duration must be copied before the dtEnd, as calling
setDuration() can change the dtEnd.