* N°4789 - Parse datamodel module.xxx.php files instead of interpreting them - refactoring all in a dedicated service first
* N°4789 - fix broken setup + tests
* N°4789 - replace legacy eval by module file parsing
* N°4789 - handle constants and if conditional structures
* N°4789 - compute boolean expressions
* N°4789 - make autoselect and dependencies work as well
* cleanup
* N°4789 - fix BeforeWritingConfig calls during setup
* N°4789 - refactor and split in ModuleDiscoveryEvaluationService + handle ModuleInstallerAPI methods calls during setup
* N°4789 - PR review changes with Romain
* PR review + code cleanup + added usecases and test cover
* temp evaluation work
* replace eval by iTop custom evaluation classes
* move PhpParser/Evaluation classes in a specific namespave + composer dumpautoload
* fix broken setup
* fix broken setup
* complete Evaluators list + autoload
* cleanup useless testing resources
* cleanup + replace last eval call in VariableEvaluator
* fix few Evaluators code
* enhance nikic evaluators + test with/without nikic lib
* Evaluator fixes/enhancements + tests
* bump to nikic fork temporarly
* bump nikic-parser fork + use only nikic fork evaluation + cleanup itop redondant evaluators
* review with Romain: use distinct whitelists in setup time/runtime + move ModuleFileParser internal logic into ModuleFileReader
* PhpExpressionEvaluator used via constructor and not as a service
* dumpautoload again after rebase
The error displayed on screen was already improved (see #280)
This commit improves the log message we can have for example by running unattended install.
The setup now relies on the new method MissingDependencyException::getHtmlDesc to get the message to display
MissingDependencyException is also now a CoreException child.
Note that previous behavior (MissingDependencyException instantiator setting message) is kept, as some consumer still do $e->getMessage() (like unattended install)