text: Title: Missing type information when dependencies are specified using AsyncIterator
  Body: ## Describe the bug
  
  The type information for classes such as AuthenticationBackend causes mypy errors when using a dependency whose return type is AsyncIterator rather than AsyncGenerator.
  
  ## To Reproduce
  
  Consider a dependency:
  ```python
  async def get_redis_strategy(
      config: t.Annotated[Config, config_dependency],
      redis: t.Annotated[Redis, redis_dependency],  # type: ignore[type-arg]
  ) -> t.AsyncGenerator[RedisStrategy[User, UUID], None]:
      yield RedisStrategy(redis, lifetime_seconds=config.SESSION_EXPIRY_SECONDS)
  ```
  Which could also be written more succinctly as:
  ```python
  async def get_redis_strategy(
      config: t.Annotated[Config, config_dependency],
      redis: t.Annotated[Redis, redis_dependency],  # type: ignore[type-arg]
  ) -> t.AsyncIterator[RedisStrategy[User, UUID]]:
      yield RedisStrategy(redis, lifetime_seconds=config.SESSION_EXPIRY_SECONDS)
  ```
  
  In the latter case mypy reports a type issue, as DependencyCallable defined in fastapi_users/types.py does not allow for AsyncIterator (even though it's semantically the same in this case).
  
  ## Expected behavior
  
  Using a dependency that returns an AsyncIterator as the `get_strategy` argument to `AuthenticationBackend` should not cause a mypy error.
  
  ## Configuration
   - Python version : 3.11.3
   - FastAPI version : 0.95.2
   - FastAPI Users version : 11.0.0