Update DocProperties for Documents that already have them.

Update DocProperties for Documents that were created with DocProperties (either from a gever document template or by uploading a new file with DocProperties) when:
- moving/copying documents
- after checkout/checkin

Furthermore, create a journal entry when updating DocProperties

Closes #509 
I honestly don't quite understand why you made this a classmethod. You later instanciate the class with `cls(document)`, so it obviously requires access to instance data, and therefore should be an instance method, no?