D3SE: Enable dependencies between exploration features
- IExplorationFeatures can now declare their predecessors and successors by priorTo() and after() statements.
- All creator and decoder modules are now d3se modules that are private guice modules.
- The d3se modules mark every generated output with their containing features as an annotation. This allows the same type to be provided by different modules. The coupling of feature-annotated artifacts is done by a feature dependency graph and the module config phase from guice.
- Within d3se modules, only the artifacts are visible (no need to reason about their origin --> handled when declaring the feature).
- IExplorationFeatures are pluggable and can be en-/disabled subject to a system's needs.
Signed-off-by: Alexander Diewald diewald@fortiss.org