Implement silent flag.

Previously after clicking to edit an item in Perseus One, the images
would load, update size data for the image, and cause the unsaved
indicator to appear, all without you doing anything.

We decided to create a "silent" flag, indicating that a change was not
the result of a user action. We want to save the results of the change,
but not indicate that anything has changed.

The only trickiness here is making sure that silent is always attached
to the object at the top level.

Note that this change only works for images (in the question, answer, or
hints). It doesn't work for other things that could asynchronously
update (at least GraphSettings, the Image widget, and Plotter).

Test plan:
* In Perseus One, open an item with images. Watch them load and notice
  that there is no change indicator (with corresponding change in P1).
  Click to a few more items and note that the change indicator never
  appears on any of them.
* make test

Auditors: jack