Makes the document factory a lot more powerfull.

* The document factories can now have a state though it cannot be
  modified during the life of the factory. They could still start a
  sub process to handle mutable state.
* Factories can inform of there capacity to retrieve document content
  so a document process do not have to be started if not required.
  This way all the code related to data retrieval can be concentrated
  in the document and factory behaviours.
* If the registry see that a factory knows how to retrieve a document
  content, it tells the calling process to ask the factory so any
  lengthy database operations are eecuted in the caller process.
  This way the returned data do not have to be copied multiple
  times and the registry is not blocked.