Interactive2: MovablePoint::modify() Optimizations

Summary:
Optimizes MovablePoint::modify() so that it only makes DOM
modifications when necessary, rather than clearing and recreating
the point when called.

To do this, we separate out "props" and "state" in MovablePoint,
depending on whether they should be reset on a modify (props should,
state shouldn't, since it holds things like raphael targets).
(They're still both accessed by this.state, which makes some of this
code harder to follow, but keeps the external interface to movables
the same, which is somewhat nice.)

This is necessary to get good performance out of <Graphie>.

This also swaps around modify and update in terms of which is used
to implement which. The interfaces remain the same, but now modify
calls update, rather than update calling modify, as this was
slightly cleaner with the new code.

Test Plan:
 * put a breakpoint on the lines that modify the visibleShape or
   mouseTarget of a MovablePoint
 * play around with an example-graphie-widget
 * make sure that the point behaves nicely
 * make sure that grading works
 * make sure that the breakpoints are only hit on page load, not
   while moving the point

Depends on D7994

Reviewers: alex

Reviewed By: alex

Subscribers: alpert

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