* Add Deterministic XamlX ID Generator
* Apply suggestions from code review
* simplify stuff and apply review
* Update src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs
* Update src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs
* add the det id gen to runtine xamlx compiler
* rerun tests
* rerun tests
* try this
* use id gen instead of guid
* a
* Update src/Markup/Avalonia.Markup.Xaml.Loader/AvaloniaXamlIlRuntimeCompiler.cs
* Update AvaloniaXamlIlCompilerConfiguration.cs
revert
* Update XamlIlClrPropertyInfoHelper.cs
* Update AvaloniaXamlIlRuntimeCompiler.cs
* fix
* revert hack
* make id gen optional
Handle changing a `Transitions` collections to new collection which contains some of the same elements.
Added a comment explaining why we add new transitions before replacing old transitions; was explained in the commit message for 0694b22c51.
- Allow adding a binding to a cleared property while ending a batch update. Need to check that the existing value isn't a remove sentinel here, otherwise the binding will be lost.
- When a binding is added during the end of a batch update, `_batchUpdate` will be non-null but newly added bindings shouldn't have `BeginBatchUpdate` called on them because no `EndBatchUpdate` will arrive (as we've already called them)
- Add sanity checks to the unit test to make sure that correct notifications are raised
During a batch update sentinel values are written to the value store to indicate that the value needs to be removed at the end of the update. If a new value is written to the store in the course of ending the batch update, don't update this sentinel value as the value will subsequently be lost.