Repository: e3nn/e3nn (language: python)

Issue:
chore: move coverage, flake8 and pylint configuration to `pyproject.toml`
## Description
This PR aims to minimize the number of configuration files for a overall minimal project structure and better contributor onboarding experience. Changes made by this PR can be summarized as follows:

* Add [Flake8-pyproject](https://pypi.org/project/Flake8-pyproject/) as an additional dependency in the Github Actions workflow to allow for `flake8` configuration from within `pyproject.toml`.
* Migrate `coverage` configuration to `pyproject.toml`.
* Migrate `pylint` configuration to `pyproject.toml`.

CC: @mariogeiger 

## Motivation and Context
Mirrors the changes from https://github.com/e3nn/e3nn-jax/pull/51

## How Has This Been Tested?
`pylint` configuration in the `pyproject.toml` is a minimal version of the output from `pylint --generate-toml-config`

## Checklist:
<!-- Put an `x` in all the boxes that apply. If you're unsure about any of
     these, don't hesitate to ask. We're here to help! -->
- [x] I have read the [**CONTRIBUTING**](https://github.com/e3nn/e3nn/blob/main/CONTRIBUTING.md) document.
- [x] I have updated the [Changelog](https://github.com/e3nn/e3nn/blob/main/ChangeLog.md).

chore(build): switch packaging to `pyproject.toml`
## Description
This PR aims to migrate the packaging process to a purely `pyproject.toml` based build. 

Request for Review: @mariogeiger 

## Motivation and Context
This PR follows the work done in recent PRs viz. #425 and #426 to minimize global file structure and mirrors work done in https://github.com/e3nn/e3nn-jax/pull/54

## How Has This Been Tested?
This was tested locally by running `python -m build` in a clean virtual environment.

## Checklist:
- [x] I have read the [**CONTRIBUTING**](https://github.com/e3nn/e3nn/blob/main/.github/CONTRIBUTING.md) document.
- [x] I have updated the [CHANGELOG](https://github.com/e3nn/e3nn/blob/main/.github/CHANGELOG.md).



Discussion / hints:

Fix patch:
diff --git a/.github/CHANGELOG.md b/.github/CHANGELOG.md
index 53b488db..c486d067 100644
--- a/.github/CHANGELOG.md
+++ b/.github/CHANGELOG.md
@@ -6,6 +6,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ## [Unreleased]
 ### Added
+- enable `pip` caching in CI
 - refactor to use `pyproject.toml` for packaging
 - refactor `gh` community files
 - move `pylint`, `coverage` and `flake8` configuration to `pyproject.toml`


Test patch:
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 84abd071..e33086bc 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -21,9 +21,12 @@ jobs:
     steps:
     - uses: actions/checkout@v2
     - name: Set up Python ${{ matrix.python-version }}
-      uses: actions/setup-python@v2
+      uses: actions/setup-python@v4
       with:
         python-version: ${{ matrix.python-version }}
+        cache: "pip"
+        cache-dependency-path: |
+          pyproject.toml
     - name: Install flake8
       run: |
         pip install flake8 Flake8-pyproject