Essentially only adjustments to the API so bindings won't need an update.
- __Additions:__
- Added `From<u8>` impl for `GameMode`
- Added the method `AnyPP::hitresult_priority`
- Added the method `[Mode]PP::generate_state` which returns the score state that will be used for performance calculation ([23])
- The struct `SortedVec` has now an improved public interface so it can be constructed and pushed onto ([22])
- __Breaking adjustments:__
- Removed the method `HitObject::end_time` from the public api. ([25])
- The fields `control_points` and `edge_sounds` of `HitObjectKind::Slider` are now stored in a `Box` rather than a `Vec`. ([26])
- Overhauled gradual calculation. All relevant types are now gated behind the `gradual` feature which must be enabled. ([24])
- `*GradualDifficultyAttributes` has been renamed to `*GradualDifficulty` and `*GradualPerformanceAttributes`
has been renamed to `*GradualPerformance`.
- Types for gradual calculation that depend on a lifetime now have a counterpart without a lifetime that might clone
underlying data along the way. E.g. now there is `CatchOwnedGradualDifficulty` and `[Mode]OwnedGradualPerformance`.
- `OsuGradualDifficulty` and thus `GradualDifficulty` no longer implement `Clone`.
- Gradual performance calculators' method `process_next_object` has been renamed to `next` and `process_next_n_objects`
has been renamed to `nth`. They now also have the new method `last`.
- Similar to `Iterator::nth`, gradual performance calculators' method `nth` is now zero-indexed i.e. passing `n=0`
will process 1 object, `n=1` will process 2, and so on.