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 make this more readable:

```php
$useRedirect  = $this->options->getUseRedirectParameterIfPresent();
$routeExists  = ($redirect && $this->routeExists($redirect));

if (!$useRedirect || !$routeExists) {
    $redirect = false;
}
```