This version changes the output of all analysis functions to improve compatibility, reorganizes low-level functions to create a new stats API, and adds a new Contributor Guide to the documentation.
* All analysis functions now return all information in columns instead of indexes. This change was made to allow support for calling Psifr functions from R using Reticulate and the {psifrr} package. It should generally improve compatibility with other table-based analysis packages, which generally do not support MultiIndexes. This change doesn't break any known code, but users taking advantage of the Index in analysis output will have to alter their code to set the Index after running the analysis.
* Low-level functions that were spread across multiple modules are now placed together in a new `psifr.stats` module. This module provides a unified low-level API for calculating statistics based on list-format data.
* All masker functions are now placed in a new `psifr.maskers` module.
* Unit tests have been reorganized to group together statistics of the same type (e.g., lag-, category-, or distance-based) to make it easier to share fixtures between tests.
* The build system has been updated to use a `pyproject.toml` file instead of `setup.cfg`.
* A new Contributor Guide has been added to the documentation to provide an overview of the organization of the codebase and provide detailed instructions for developing new analyses.