Ensure that calls to the public -archive method are dispatched to the serial queue. Otherwise, pending changes on the queue may mutate the event and people data while it is being enumerated by the archiver.
Prevent multiple calls to -flush.

Flushes are performed as background tasks, but since the task ID
is stored as an instance variable, calling -flush twice in a row
obliterates the first task ID and allows only the second one to
be ended correctly. This results in iOS killing your application
because a background task has been running for too long.
Merge pull request #80 from Newstex/pull-requests/archive-mutation-crash-fix

Fixes a crash due to mutating event or people data while archiving [regression]

thanks @idpaterson
Merge pull request #81 from jwatson/master

Prevent multiple calls to -flush.

thanks @jwatson
Merge remote-tracking branch 'upstream/master'