The tests all pass when using the bottom of the new version ranges on Windows.
The unicase dependency's lower bound is limited by rust-ini even after using the latest master branch versions of esplugin, libloadorder and loot-condition-interpreter.
The proc-macro2 and quote dependencies' lower bounds are limited by pyo3's dependency tree.
The nodejs wrapper's dependencies haven't been touched.
libloot's C++ implementation is licensed under the GPL v3.0 or later, not v3.0 only, so carry the same into the Rust reimplementation and its dependent crates.
To prevent inconsistencies between implementations. This means allocating new boxed Filenames for each comparison, but an extra string copy is avoided by making the C++ operators friends of the C++ class (which is ABI-safe).