Simplify the EnvHelper
Motivation
There is a lot of code in EnvHelper that deals with each variable on a case-by-case basis. It could be nice to instead do this initialisation in a generic way, using introspection to understand the types of variables and initialise them automatically.
There is some prior art for this in rag-experiment-accelerator repo: https://github.com/microsoft/rag-experiment-accelerator/blob/development/rag_experiment_accelerator/config/environment.py (though this does not deal with boolean variables)
How would you feel if this feature request was implemented?
Share a gif from giphy to tells us how you'd feel

Another problem with the helper is that every time EnvHelper() is called, all the secrets in the helper are reconfigured. When using KeyVault, this means that each secret is fetched from KeyVault, even if we had already fetched the values. For example, a single request to /api/conversation/custom calls KeyVault 174 times (!)
A similar thing occurs with the config, we always attempt to fetch the config from Azure Storage, including multiple times per request, even though we would not expect it to change much between requests.
Perhaps this should be addressed in a separate issue.
Raised #625