text: Title: Provide a pytest plugin
  Body: ## Problem
  
  <!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->
  
  Currently, testing applications that use Prisma Client Python requires a fair bit of manual setup and non-obvious code paths, we can make this easier by providing a pytest plugin that automatically takes care of setting up and tearing down the database for you.
  
  ## Suggested solution
  
  <!-- A clear and concise description of what you want to happen. -->
  
  `plugin`
  ```py
  # consumers can define their own `prisma_client` fixture to add additional __init__ arguments
  @pytest.fixture(scope='session')
  def prisma_client() -> Client:
      return Client()
  
  @pytest.fixture()
  {{ maybe_async_def }}prisma(prisma_client: Client) -> Iterator[Client]:
  	# cleanup
      yield prisma_client
      # teardown
  
  # NOTE: there may be difficulties here due to scope mismatch, actual API is still TODO
  ```
  
  `consumer`
  ```py
  # tests that use model-based access must mark the test as using prisma
  @pytest.mark.prisma
  @pytest.mark.asyncio
  async def test_foo() -> None:
      user = await User.prisma().create({'name': 'Robert'})
      assert user.name == 'Robert'
  
  # tests that use the client fixture do not have to mark the test
  @pytest.mark.asyncio
  async def test_bar(prisma: Client) -> None:
      user = await prisma.user.create({'name': 'Robert'})
      assert user.name == 'Robert'
  ```
  
  ## Additional context
  
  <!-- Add any other context or screenshots about the feature request here. -->
  
  Code for truncating all tables in the database can be found in our own tests `conftest.py`:
  
  https://github.com/RobertCraigie/prisma-client-py/blob/main/tests/conftest.py#L120-L124
  