Fix abstract extension

This PR makes `AbstractExtension` a "naked extension" (so let's say I "undressed" it).
Adds a `preLoad` method and new parameters to `postLoad` so you have access to both the `Container` and the `config` in progress.
Now, each extension is required to implement `getAlias`.
Also, `AbstractConfiguration` is easier to work with, through the `setupTree` method, which creates the root node for you.