Rewritten for proper two-say syncing. Added testsuite.

This is pretty much a rewrite of org-caldav to do proper two-way
syncing.
(org-caldav-save-object): Removed.
(tests): Added comment on how to run tests.
(org-caldav-cleanup-ics-description): Fix timestamp removal.
(org-caldav-get-preamble): Remove non-standard headers.
(org-caldav-calendar-preamble): Just set it ourselves.
(org-caldav-get-preamble): Removed.
(org-caldav-update-eventdb-from-org)
(org-caldav-update-events-in-cal): Don't call the above.
(org-caldav-start-from-scratch): New.
Add progress messaging.

(org-caldav-start-from-scratch, org-caldav-update-events-in-cal): Show
progress and set `url-show-status' to nil.
(org-caldav-change-timestamp): Use `org-maybe-keyword-time-regexp'.
(org-caldav-start-from-scratch): Renamed to `org-caldav-delete-everything'.
Remove cruft.

(org-caldav-event-set, org-caldav-create-event-exist-cache)
(org-caldav-insert-new-events, org-caldav-get-all-caldav-uids)
(org-caldav-remove-text-properties, org-caldav-filter): Removed.
(org-caldav-generate-md5-for-org-entry, org-caldav-update-events-in-org):
Use `org-id-find' instead of `org-id-goto'.
Update doc-strings.
Circumvent Org bug that uppercases timezone.

(org-caldav-maybe-fix-timezone): New.
(org-caldav-update-events-in-cal): Call it.
(org-caldav-generate-ics): Include TZID if `org-icalendar-timezone' is
set.
Show results after syncing.
(org-caldav-update-events-in-cal): Only update etags for events which
could be put.
(org-caldav-current-event-etag-list): Removed.
(org-caldav-update-events-in-org): Choose the right buffer to calculate MD5.
(org-caldav-sync): Delete temporary file.
(org-caldav-update-events-in-cal): Progress messages during deletion.
(Comment): Removed.
(org-caldav-display-sync-results): Show errors separately.
(org-caldav-sync-result-filter-errors, org-caldav-sync-result-print-entries): New.