Extends is a list.
Move configurable logic into config module.
Rework configuration machinery.

Now have a Configurable object; Apps are configurable. Configurables
are combined according to their extends. This means we don't need
to use a chain lookup anymore, and we have a clean system for overriding
anything that was configured based on the identifier.