Added ControllerDispatcher

This change breaks BC - container instance is no longer passed to DeSmart\Layout\Controller.
ControllerDispatcher takes care of injecting dependencies to Controller instance.