Set editing is fragile and inefficient

(Bug, To be Fixed , Priority: High, Test Status: No automated tests yet , Reported By Justin du Coeur, )
Summary: All of the Set UIs currently send the entire set back and forth every time you add or remove an item. That's dumb -- not only is it extremely inefficient, it means that two browsers looking at the same set will tend to stomp each other. This has been a fairly frequent problem for my Shopping List.
We need to build a concept of partial changes to a property -- ie, when I add or remove a Set item, I should be sending just the addition/subtraction, not the complete state of the Set. That would be both much faster and more robust.
Note that this generalizes to roughly the operative calculus stuff that Wave was doing. I should probably start thinking in those terms -- not necessarily picking up Google's algorithms, but at least pondering this approach to changes. So long as we reach eventual consistency, it's a great way to work.
Lists have the same problem, but moreso, so I need to think it through more carefully. In a List, there may be duplicate items, and order matters. So getting the eventual consistency right is trickier.
This problem would also be ameliorated by having a version stamp in the browser, so that the server can reject changes coming from an out-of-date view.