Sends the application Container to the ControllerDispatcher if available

By passing a `new Container` to the `ControllerDispatcher`, the
instantiation of controller instances can't properly perform dependency
resolution for bindings on the main application `Container`.

This fixes that issue, and still leaves the default `$controller`
property value as `new Controller` to keep the tests passing.
Merge pull request #2200 from deefour/bugfix/router-ioc

[Bug] Send the application Container to the ControllerDispatcher if available