cyclical delegation and change votes: our semantics is different from liquid feedback.
in #615, we currently implement the delegation logic, and we ran into a weirdness in the fringe case where N voters delegate to each other in a cycle and then several voters cast votes consecutively.
the current behaviour is consistent and harmless (voters can always change their own votes, and they will never cast implicit votes by anybody they didn't delegate their vote to, whether direcctly or transitively), but diverges from liquid feedback and may be more unpredictable, so we should consider switching to the liquid feedback implementation.
here is what is going on:
- A delegates to B delegates to C delegates to D delegates to A
- C votes yes
- A votes no
In liquid feedback, C makes all delegatees cast an implicit vote, then A changes her own mind, but nobody elses. the outcome is 3 yes, 1 no.
In aula, A changes all her delegatees votes with her own and those that have been cast explicitly, which is C's. the outcome is 1 yes, 3 no.