Features and improvements
Added the following methods to `pymatching.Matching`:
* `pymatching.Matching.decode_batch`: decodes a batch of (optionally bit-packed) shots to decode, instead of just a single shot (as done by `pymatching.Matching.decode`). For smaller/easier problems, `Matching.decode_batch` is _much_ faster than iterating over the shots in python and calling `Matching.decode` for each one. E.g. When decoding d=11,rounds=11, p=0.1% surface code circuits, looping over `Matching.decode` in python is 1us per round vs 0.37us per round using `Matching.decode_batch`. For d=5,rounds=5, p=0.01%, looping Matching.decode in python is 0.8us per round vs 0.02us per round with Matching.decode_batch.
* `pymatching.Matching.decode_to_edges_array`: returns the solution as an array of edges (given as pairs of detector node indices).
* `pymatching.Matching.from_detector_error_model_file`
* `pymatching.Matching.from_stim_circuit`
* `pymatching.Matching.from_stim_circuit_file`
Adds `pymatching.cli`, which provides access to the pymatching command line tool via the Python API.
Adds the `pymatching` console script entry point to the setup.py. Makes the `pymatching` command line tool available when pip installing.
Bug fixes
Fixes a bug in the command line tool where b8-formatted stim dets files couldn't be read on windows machines (also causing issues with sinter, which uses the command line tool).