Tests for CredentialsProvider

@fernandoacorreia I've changed the return type from `Future[Option[LoginInfo]]` to `Future[Try[LoginInfo]]` because `None` doesn't describe the occurred error. The other alternative would be to return only a `Future[LoginInfo]` and throw Exceptions in case of an error, pretty much as we do it for all social providers. But I'm not sure if we should go this way, because the API doesn't describe that an error can occur. And in this case the error is an integral part of the authentication flow.

The other question is now, should we change the return type of the social providers too? So that the API describes also that an error can occur during authentication?