Graphie: Enforce children order using toFront()

Summary:
When you render html components in React, you expect elements
rendered below earlier elements in the jsx to appear on top
of earlier elements, because that's how html works.

Unfortunately, <Graphie> did not behave similarly, because
sometimes an earlier raphael element would be destroyed and
recreated in the svg, automatically bringing it in front of
other elements that were not recreated, even if those elements
appeared later in the render function.

This change removes this difference in behaviour by having
<Graphie> keep track of when an element has been destroyed and
recreated for its modify function (or simply added), and
subsequently calling .toFront() on elements rendered later.
This causes element ordering (of well-behaved elements,
which now must return a specific value from .modify() to
indicate they have broken raphael ordering) to be defined
entirely by the order they appear in the render() function.

Yay!

Test Plan:
Used in the numberline refactor. Without this change, the
number line and tick marks often end up above the
movable point; with this change, they always appear below
the movable point.

Reviewers: alex

Reviewed By: alex

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