Replaced mixins init calls for event registrations

@eduojeda Osets, hice un refactor en el que reemplazo las llamadas `init` de los mixins. En su lugar cada mixin ahora registra un callback que es ejecutado cuando se llama a `init()`. La desventaja de este approach es que las clases no pueden pasar parámetros de inicialización a los init callbacks. La ventaja es que la definición de las clases se vuelve mucho más limpia. 

Haciendo un mapeo a ruby (y creería que php también), los mixins no tienen constructores o métodos de inicialización. El contrato entre una clase y un mixín es más bien implícito, de la misma manera que sucede con este nuevo approach. 

Te recomiendo empezar a mirar el código por el nuevo mixin `Initializable`.