Major fix to how editing works

Editing of ratings wasn't working in some cases; that turned out to be
because they were User Values, which were totally failing.  That in turn
exposed the fact that the way we were communicating between
EditFunctionsImpl and the rest of the code was badly broken.

Now rewritten to make more sense, and be more consistent with the rest
of the system.  As a bonus, the "Saved" indicator now more accurately
reflects whether it saved successfully.