Makes FileCopier more robust.

Using callbacks directly instead of wrapped functions. This hopefully fixes errors that sometimes happened.
Also check if the observer passes documents to the callback because sometimes the document can be undefined.
Bumps version to 0.3.2
merging to master and updating history
merging master
Merge branch 'startup-test' into decoupled-mirror