Implement aadd_texts for pinecone vectorstore
Labels: name: area: vector store, name: auto:improvement

## Summary

This PR implements the `async` `aadd_texts` method for the Pinecone vectorstore. It resolves https://github.com/langchain-ai/langchain/issues/8635.

## Context

Pinecone supports sending upsert requests in parallel, provided the index is initialized with `pool_threads > 1`, as per the example in their [documentation](https://docs.pinecone.io/docs/insert-data#sending-upserts-in-parallel).

This PR implements the `aadd_texts` defined by the `Base` vectorstore using the same parameters as the synchronous version. However, this implementation uses `batch_size` to chunk the embedded documents and unconditionally sets `async_req=True` for every `upsert` request. Additionally, we wrap the `result.get` calls to be called asyncrhonously. Note, once Python3.9+ is the base requirement, [`loop.run_in_executor`](https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.run_in_executor) should be replaced by [`asyncio.to_thread`](https://docs.python.org/3/library/asyncio-task.html#asyncio.to_thread).

## Test Plan

```
omikader@Anh-This-Air langchain % poetry run pytest tests/integration_tests/vectorstores/test_pinecone.py
=========================================================================================== test session starts ============================================================================================
platform darwin -- Python 3.10.12, pytest-7.3.2, pluggy-1.0.0
rootdir: /Users/omikader/GitHub/langchain/libs/langchain
configfile: pyproject.toml
plugins: asyncio-0.20.3, cov-4.1.0, vcr-1.0.2, mock-3.11.1, syrupy-4.0.2, dotenv-0.5.2, anyio-3.7.0, socket-0.6.0
asyncio: mode=strict
collected 7 items

tests/integration_tests/vectorstores/test_pinecone.py .......                                                                                                                                        [100%]

============================================================================================= warnings summary =============================================================================================
.venv/lib/python3.10/site-packages/pkg_resources/__init__.py:121
  /Users/omikader/GitHub/langchain/libs/langchain/.venv/lib/python3.10/site-packages/pkg_resources/__init__.py:121: DeprecationWarning: pkg_resources is deprecated as an API
    warnings.warn("pkg_resources is deprecated as an API", DeprecationWarning)

.venv/lib/python3.10/site-packages/pkg_resources/__init__.py:2870
  /Users/omikader/GitHub/langchain/libs/langchain/.venv/lib/python3.10/site-packages/pkg_resources/__init__.py:2870: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('google')`.
  Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages
    declare_namespace(pkg)

.venv/lib/python3.10/site-packages/deeplake/util/check_latest_version.py:32
  /Users/omikader/GitHub/langchain/libs/langchain/.venv/lib/python3.10/site-packages/deeplake/util/check_latest_version.py:32: UserWarning: A newer version of deeplake (3.6.15) is available. It's recommended that you update to the latest version using `pip install -U deeplake`.
    warnings.warn(

tests/integration_tests/vectorstores/test_pinecone.py: 46 warnings
  /Users/omikader/GitHub/langchain/libs/langchain/.venv/lib/python3.10/site-packages/pinecone/core/client/rest.py:45: DeprecationWarning: HTTPResponse.getheader() is deprecated and will be removed in urllib3 v2.1.0. Instead use HTTPResponse.headers.get(name, default).
    return self.urllib3_response.getheader(name, default)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
----------------------------------------------------------------------------------------- snapshot report summary ------------------------------------------------------------------------------------------

=========================================================================================== slowest 5 durations ============================================================================================
21.50s call     tests/integration_tests/vectorstores/test_pinecone.py::TestPinecone::test_relevance_score_bound
5.81s call     tests/integration_tests/vectorstores/test_pinecone.py::TestPinecone::test_aadd_texts
2.60s call     tests/integration_tests/vectorstores/test_pinecone.py::TestPinecone::test_from_existing_index_with_namespaces
2.53s call     tests/integration_tests/vectorstores/test_pinecone.py::TestPinecone::test_add_documents_with_ids
1.88s call     tests/integration_tests/vectorstores/test_pinecone.py::TestPinecone::test_from_texts
===================================================================================== 7 passed, 49 warnings in 40.25s ======================================================================================
```

## Maintainers

Maintainer responsibilities:
  - DataLoaders / VectorStores / Retrievers: @rlancemartin, @eyurtsev
  - Async: @agola11