New conflict resolution layer implementation using RabbitMQ to communicate
between client and server processes.
For each set methods in the ProvenanceStorageInterface the client will
dispatch the information to be stored to different queues, based on the id
of the associated entity (in case of a relation, the source entity).
The server will spawn one sub-process per queue to handle those particular
requirements. The split policy is defined in the server class in such a
way that no writing conflicts should occur in the underlying storage.
For the get methods, the client directly access the underlying storage
object, for which it has its own connection (ie. no communication through
RabbitMQ occurs).
Docs: https://hedgedoc.softwareheritage.org/RJQjBSR2TmuVzD6NRFFCeg