3.0 auth improvements

This solves 2 problems:

* I often needed to know which authentication or authorization provider was used in the current request. I alway had to hack that by adding setting some global state form the providers. This patch adds a couple methods that will return the instance of the auth providers that were successfully used.
* Now it is possible to rehash password by asking the relevant auth provider to do it for you. It will not save to database, though. Users are still responsible for persisting the freshly hashed password

### Example:

```php
if ($this->Auth->login()) {
  $provider = $this->Auth->loginProvider();
  $hasher = $provider->passwordHasher()
  $rehashed = $provider->needsPasswordRehash() ?
    $hasher->hash($this->request->data('password'))
    :
    null;
  if ($rehashed) {
    $this->Users->save(...)
  }
}
```
Edit: Removed a derp method that I originally added to BaseAuthenticate
Given that is is practically impossible to get any auth object that was not the one used for authenticating, I'm not too worried about that case