calcurse-caldav: Split object addition and removal
calcurse-caldav: Split object addition and removal

Instead of performing two synchronization steps (push/pull), split the
synchronization protocol into four steps:

1. Retrieve new objects from the server.
2. Delete local objects that no longer exist on the server.
3. Push new objects to the server.
4. Delete remote objects that no longer exist locally.

Each of the steps is performed by a separate function.

Signed-off-by: Lukas Fleischer <c9ca73f8336dcfb037ec2c2abf52d80a6847a5cd@calcurse.org>

lfos/calcurse,lfos/calcurse,lfos/calcurse