Changed
* Add compatibility with MOC2.0: Time depth in now in `[0, 61]` instead of `[0, 29]`
* Add `from_time_ranges_in_microsec_since_jd_origin` in `temporal_coverage.rs`
* Time operations now precise to the microseconds, see:
* `utils.times_to_microseconds`
* `utils.microseconds_to_times`
* Add several options to `moc.from_valued_healpix_cells`
* Add `load` and `save` methods for serialization/deserialization in pure Rust (ensuring
MOC2.0 compatibility).
* Improve performance and some operations (like intersection and union)
* Improve `to_uniq` performances (x5 according to a bench in pure Rust)
* Improve `add_neighbours` and `remove_neighbours` performances (now in pure Rust)
Internal Python changes
* `complement()`: remove from AbstractMoc / IntervalSet, and add it in Moc and TimeMoc (because complement now depends on the qty)
Internal changes
* Remove the `moc` crate from MOCPy and publish it as a standalone [here](https://github.com/cds-astro/cds-moc-rust)
(with a lot of added stuff)
* Add FITS serialization/deserialization on the Rust code.
* Add ASCII and JSON serialization/deserialization on the Rust code.
* Move `rand` from dependencies to dev-dependenciies
* Generalize the code to support various quantities with different dimensions (HEALPix indices, Time, ...)
* create `MocableQty` and `MocQty` implemented by `Hpx` and `Time`
* Remove depth/qty dependent operations from `Ranges` (depth/complement/degrade), create a trait for generic operations
* Add `MocRange(s)` since we introduced `MocQty` for depth dependent operations, and introduce both: `HpxRange(s)` and `TimeRange(s)`
* Add `MocRanges2D` for depth dependent operations
* Rename `NestedXX` in `HpxXX` to possibly support Ring indices (the code should be the same as far as the NSIDE is a power of 2)
* ...