New redirect strategy

I change the way the redirect strategy works.
The redirects from authenticate/logout actions are now callbacks.
This way the user can overwrite the default callback and decide **exactly** what to should happen.

ping @Ocramius

closes #479
closes #476
closes #473
closes #469
Just had a think about this one @ojhaujjwal.  On the surface it's a nice optimisation, but I think the issue arises because it would be making assumptions about the actions that the plugin will take.  If a user replaces the plugin with one of their own, they may not require a default route at all, but it would still be being passed in from the controller.