[WIP] Refactoring of the definition sources

The definition sources are, as of today, a source of frustration and limitations. They make #136 very difficult for v4.0.

This is a refactoring where, instead of a DefinitionManager having a CombinedSource in which sources are added in a precise order, the sources will be chained.

So:

- There will be a "chain" of sources (easier to handle)
- `AnnotationDefinitionSource` will completely replace `ReflectionDefinitionSource` when annotations are enabled, this is too much trouble for no less lines of code else
- introduction of a `MergeableDefinition`
- no more merging with parents in array/PHP definitions -> an entry is identified by its entry name, its class name is either defined or guess from the entry name, period

TODO left:

- [x] Refactor `ArrayDefinitionSource` to separate reading a file from managing an array of definitions