WIP on ImageQuestion buttons [#58992462].

Simplifies the "Edit answer" button to just "Edit", and creates a "Replace snapshot" button for existing snapshot questions. Also adds a "cancel" button to the dialog which reverts changes to the text box if there is one, and while it doesn't roll back changes to the SVG it doesn't save them either. The two catches are that ("Cancel" doesn't set the SVG back to the saved state) and that if there's no text box for an image question, they may not see the "Edit" button even if they have provided an image answer. (It's hard to tell when a question has been answered in a way which is universal across the types of ImageQuestion.)

https://www.pivotaltracker.com/story/show/58992462
Uniform scaling for backgrounds in ImageQuestions [#59358426].

This ensures that the background image is positioned the same way in the saved annotated image as is is in the canvas when the annotations are made, instead of scaling non-uniformly to fill the box.

https://www.pivotaltracker.com/story/show/59358426
Revert SVG annotation on cancel [#58992462].

If the user clicks the "cancel" button, changes they made to the SVG annotation will be discarded and the drawing canvas returned to the previous saved state.

https://www.pivotaltracker.com/story/show/58992462
Show the right buttons (new/edit) at the right times.

This should finish the lifecycle of an ImageQuestion for stories [#54716124] and [#58992462]. We use the presence of Snapshot or Drawing buttons to determine what values make a question "answered" and show the appropriate buttons (create or edit) based on the presence of those values.

https://www.pivotaltracker.com/story/show/58992462
https://www.pivotaltracker.com/story/show/54716124
Sketchily is updated on our branch.
Merge branch 'image-question'