state -> props, update editor for *all* changes

Summary:
This is a twofer - refactoring some code to use `props` instead of
`state` (yay) and making sure to call the `onChange` callback of
`EditorPage` whenever anything, including hints and the answer, changes.

The `props` change is bundled in here because if the parent
(`EditorPage`) wants to know about changes to its childrens' states - it
should just own that state. One open question for me is whether
`question`, `answerArea`, and `hints` should be in `EditorPage`'s
`state` or `props`. Left in `state` for now.

Test Plan:
Open a Perseus question in 360 - each of these things causes the unsaved
indicator to appear:
* start typing in the question area
* change the correct answer
* check "Show calculator" or "Allow inexact answers"
* change "Unsimplified answers ____"
* change the answer type
* change the width
* modify an existing hint
* add a hint
* delete a hint
* switch the order of two hints

Each of these changes is reversible - you can make the unsaved indicator
go away by putting the exercise how it was.

As a weak sanity check I saved and reloaded a couple times to find the
exercise (as far as I could tell) in the same state I left it.

Reviewers: jack, alex

CC: alpert

Differential Revision: http://phabricator.khanacademy.org/D5384