text: Title: Add support for middleware
  Body: [https://www.prisma.io/docs/concepts/components/prisma-client/middleware](https://www.prisma.io/docs/concepts/components/prisma-client/middleware)
  
  ```py
  client = Client()
  
  async def logging_middleware(params: MiddlewareParams, next: NextMiddleware) -> MiddlewareResult:
      log.info('Running %s query on %s', params.action, params.model)
      yield await next(params)
      log.info('Successfully ran %s query on %s ', params.action, params.model)
  
  async def foo_middleware(params: MiddlewareParams, next: NextMiddleware) -> MiddlewareResult:
      ...
      result = await next(params)
      ...
      return result
  
  client.use(logging_middleware, foo_middleware)
  ```
  
  ### Should Support
  
  * Yielding result
  * Returning result