Also put proper comparison methods on `DerivedPath` and `NixStringContextElem`, which is needed for the tests but good in general.
This allows using Arbitrary "instances" defined in libstore-tests in libexpr-tests, something we will leverage in a moment.