ical2eas: code cleanup, bug fixes/worarounds (BMC #22780)
ical2eas: code cleanup, bug fixes/worarounds (BMC #22780)

Do conversion to target time zone and date-time value once in
_ical2eas_convert_icaltime_to_utcstr() instead of duplicating the
code. Use libical methods to do it instead of manipulating the
resulting text string.

The workaround for recurring all-day events (BMC #22780) is to send a
dummy UTC time zone. It is unclear why that makes a difference, but
without that, exceptions to the recurring all-day event are ignored.

SyncEvolution/activesyncd are now able to send all-day events with
local time (no time zone) and retrieve them again in the same format.
However, OWA does not consider such events as all-day unless their
start/end times happens to co-incide with midnight in the current time
zone. To get closer to that model, activesyncd would need to know the
current time zone and use that instead of UTC as target time zone in
the conversion from date-only to date-time values.

Conversion previously assumed that the parent VEVENT came first in the
VCALENDAR. That's not guaranteed and in fact wasn't the case with
SyncEvolution. Fixed by checking RECURRENCE-ID.

simo5/evolution-activesync,simo5/evolution-activesync,simo5/evolution-activesync