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
I would extract a variable here to make it more readble:

```php
$url = $this->getRedirectUrl(
    $routeMatch->getMatchedRouteName(),
    $routeMatch->getParam('redirect', false)
);
```

Note I also changed `getRedirect()` to `getRedirectUrl()` to show it should return a url.