EnableIf objects stored in DependencyHandler

Now the DependencyHandler stores all EnableIf
objects inside a Map that links them to their
component, because creating a new object in
each step was a cause of many potential
problems (they store the listeners inside
an attribute).