Refactor stage common.
type:internal
Rework the internal Stage_common. Change design pattern for "module-type" Now instead of all the types being in a big "types.ml" files, they all live inside their own modules along file the fonction that should work on them.
This will simplify their usage in the pipeline and is the first step toward adding "abstraction" which will improve maintainability
Edited by Pierre-Emmanuel Wulfman