Introduce the DataProducer abstraction

This commit refactors the codebase such that instead of passing a
Conduit for the data fetched from the external APIs we have now a
`DataProducer` which can eventually support splitting the fetching of
data into multiple async jobs.
4 jobs for adinapoli/issue-511 in 59 minutes and 29 seconds (queued for 3 seconds)
Status Job ID Name Coverage
  Cabal
passed #19426
cabal

00:30:55

 
  Stack
passed #19427
stack

00:03:10

 
  Bench
manual #19428
allowed to fail manual
bench
 
  Test
failed #19429
test

00:25:23

 
Name Stage Failure
failed
test Test
/builds/gargantext/haskell-gargantext/dist-newstyle/build/x86_64-linux/ghc-9.6.6/gargantext-0.0.7.5.2/t/garg-test/opt/test/gargantext-0.0.7.5.2-garg-test.log
0 of 1 test suites (0 of 1 test cases) passed.
Error: [Cabal-7125]
Tests failed for gargantext-0.0.7.5.2-inplace-garg-test.
CallStack (from HasCallStack):
dieWithException, called at src/Distribution/Client/ProjectOrchestration.hs:1232:21 in cabal-install-3.12.1.0-4VzemddeTcy9Sd7ImiySSq:Distribution.Client.ProjectOrchestration

Cleaning up project directory and file based variables
ERROR: Job failed: exit code 1