feat: 🎸 add concept of Resource
This long PR creates a new concept, Resource. The resource is aimed at being allocated and then released after use: connection to a database, modification of the datasets library config, or creation of storage directories...
Before this PR, it was done in the Config step. Now the Config step should never raise and should be immutable, and the Resources are created based on that config.

It makes it "easier" to understand what is failing in the tests and in the app.

GOOD LUCK to the reviewers, and sorry for the length.
feat: 🎸 add concept of Resource: This long PR creates a new concept, Resource. The resource is aimed at being allocated and then released after use: connection to a database, modification of the datasets library config, or creation of storage directories...
Before this PR, it was done in the Config step. Now the Config step should never raise and should be immutable, and the Resources are created based on that config.

It makes it "easier" to understand what is failing in the tests and in the app.

GOOD LUCK to the reviewers, and sorry for the length.