Revert part of fd993d0b52
Only keep the change in `evaluate` to fix the leak.
We can't destroy the nodes in mark_dirty as destroying them while
iterating lead to crash
The dependency nodes would be leaked.
(This was particularly bad for the ones from the Flickable's bounds
change tracker since that one has many dependencies, while most change
tracker only have one)
Fixes#8768
Don't drop the ChangeTracker's BindingHolder if it is currently being
evaluated as we still need it later.
There was also a bug in DependencyListHead::clear as it was not properly
updating all the field, and the use of for_each was problematic if nodes
gets delete as we iterate.
Fixes#8741
When either the viewport gets smaller or the Flickable gets bigger, we
should move the viewport position to keep it within the bounds.
Fixes#7487Fixes#2227
(Also workaround #8147 as the ScrollView will automatically go back in
bounds)
And call `extern crate std` when the feature is enabled.
I've read this is the good practice on how to do it.
So that the std prelude is no longer included automatically.
There is then less difference between std and and no-std build which
should avoid surprises in the CI when we use things from the prelude.
The downside is that there is a bit of churn in the tests