Fix false redirect alarm in Router.didTransition

In some cases didTransition believed a redirect had occurred when this was not
the case. This in turn prevented currentPath from being set among other issues.
itemController should propagate target

This allows {{action}} to work when paired with
{{#each}}'s itemController option.
Routes assign correct models to their controllers

As controllers are often proxying models, it is possible a controller
has been passed to a route through `linkTo`. We should then use the actual
controller's content instead.
Use a container form the controller given as context to a route

it closes #2009 and #1998