Add new RabbitMQ-based client/server API
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
Migrated from D6165 (view on Phabricator)