Interactive2: improve modify vs update semantics

Summary:
Previously, `modify(options)` would sort of update the object with only
those options you had passed in, but reset some other options. This
commit splits those two types of functionality (updating and resetting
with modifications) into two functions:

`update(options)` allows you to change construction options individually.
`modify(options)` now resets the state of the whole movable to as if you
had specified only those options in the initial constructor.

This commit also fixes a bug in MovableLine's handling of normalStyle
and highlightStyle on modify().

This commit does not address MovableLine's modify, as MovableLine should
be refactored to use MovableLineOptions first (which I will do in another
commit).

Test Plan:
 * Play around with a number-line widget
   http://localhost:9000/test.html#content=%7B%22question%22%3A%7B%22content%22%3A%22%5B%5B%E2%98%83%20number-line%201%5D%5D%22%2C%22widgets%22%3A%7B%22number-line%201%22%3A%7B%22type%22%3A%22number-line%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22correctRel%22%3A%22lt%22%2C%22isInequality%22%3Atrue%2C%22range%22%3A%5B0%2C10%5D%2C%22labelRange%22%3A%5B%22%22%2C%22%22%5D%2C%22divisionRange%22%3A%5B1%2C10%5D%2C%22labelStyle%22%3A%22decimal%22%2C%22labelTicks%22%3Atrue%2C%22numDivisions%22%3A5%2C%22tickStep%22%3Anull%2C%22snapDivisions%22%3A2%2C%22correctX%22%3Anull%2C%22initialX%22%3Anull%7D%7D%7D%7D%2C%22answerArea%22%3A%7B%22type%22%3A%22multiple%22%2C%22options%22%3A%7B%22content%22%3A%22%22%2C%22widgets%22%3A%7B%7D%7D%2C%22calculator%22%3Afalse%7D%2C%22hints%22%3A%5B%5D%7D
 * And an interactive-graph widget
 * and run `make test`

Reviewers: justinjaffray

Reviewed By: justinjaffray

Subscribers: alpert

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