MudDataGrid: Honor a custom Comparer in the live selection set
Fixes https://github.com/MudBlazor/MudBlazor/issues/13008 and Fixes https://github.com/MudBlazor/MudBlazor/issues/12820.
Setting Comparer on a MudDataGrid has no effect on which rows render as checked. Seeding SelectedItems with instances that are equal only under the custom comparer leaves every checkbox unchecked, and replacing Items with new but equal instances silently drops the existing selection.
The grid's constructor builds Selection = new HashSet<T>(Comparer), but constructors run before Blazor applies parameters, so Comparer is still its field initializer, EqualityComparer<T>.Default. A HashSet keeps the comparer it was constructed with, and Selection was only ever mutated in place afterwards, so CellContext.Selected, which is what each row checkbox binds to, consulted the default comparer for the grid's entire life. This registers Comparer in the existing parameter scope and rebuilds Selection from its current contents when the value arrives. The other sets built from Comparer are constructed at call time and were already correct.