Lifecycle callbacks for documents implementation. 

PrePersist document event implementation.

Resolves #53
I would name it `HasLifecycleCallbacks` instead of `LifecycleCallback`. Logicly documents cannot be callbacks :)