Alter saveWithBlock: so that it runs asynchronously. Fixes #349.
Execute save completion blocks on the main dispatch queue.

Addresses #351 in the context of saving.