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
How about doing something like:
`return $this->zfcUserRedirect($this->getOptions()->getLogoutRedirectRoute());`. 

Where, the argument passed represents the default redirect route.

This way there is no need to use switch statements in `ZfcUser\Controller\Plugin\ZfcUserRedirect::getRedirectResponse()`.