text: Title: Add a function for casting to magic types
  Body: ## Problem
  
  Referencing magic types (types that are modified by a plugin) can be annoying as it is not possible to properly represent them.
  
  We should add a function similar to [`typing.cast`](https://docs.python.org/3/library/typing.html#typing.cast) that type checker plugins will modify the return type like it is an action method.
  
  ```py
  def foo(user: User) -> None:
    print(user.posts[0])  # error: posts could be none
  ```
  
  ## Suggested solution
  
  ```py
  def prisma_cast(model: BaseModelT, include: Dict[str, Any]) -> BaseModelT:
  	return model
  ```
  
  ```py
  UserWithPosts = prisma_cast(User, include={'posts': True})
  
  def foo(user: UserWithPosts) -> None:
    print(user.posts[0])  # valid
  ```
  