Modularized coloring of interactive items

Summary:
Previously, coloring was done with hard-coded values (i.e., KhanUtil.BLUE), and some items
were colored differently than others. Now, the INTERACTABLE, NON_INTERACTABLE, and INTERACTING
colors are defined in utils/math.js, and all interactive items in utils/interactive.js are styled
accordingly. This commit also contains a number of fixes to interactive.js that make the widgets
more consistent in how they choose to be defined as 'interactable', 'interacting', etc. For example,
the protractor's arrow remains 'interacting' as long as you drag, rather than as long as you mouseover,
making it much more consistent with the behavior of our other interactive tools.

Angle points no longer unhighlight when flipping over angle

Previously, if you had a movable angle, grabbed one of the non-vertex points,
and flipped it over the angle, it would unhighlight, as the vertex was calling its
onUnhighlight function. Now, onUnhighlight is only called if nothing is being dragged,
not just the point in question.

Interactive items now remain highlighted on mouse release if still moused-over

A few interactive1 items would unhighlight if you dragged and released, but still had
your mouse over them. This differed from the behavior in interactive2, where items would remain
highlighted if they were still moused-over.

Addressed Jack's comments: reflect button no longer allows dragging, unbind handlers are more careful

Test Plan:
- Run Perseus.
- Check out all these [interactive widgets](http://localhost:9000/test.html#content=%7B%22question%22%3A%7B%22content%22%3A%22%5B%5B%E2%98%83%20transformer%201%5D%5D%5Cn%5B%5B%E2%98%83%20transformer%202%5D%5D%5Cn%5B%5B%E2%98%83%20number-line%201%5D%5D%5Cn%5B%5B%E2%98%83%20interactive-graph%201%5D%5D%5Cn%5B%5B%E2%98%83%20interactive-graph%202%5D%5D%5Cn%5B%5B%E2%98%83%20interactive-graph%203%5D%5D%22%2C%22images%22%3A%7B%7D%2C%22widgets%22%3A%7B%22transformer%201%22%3A%7B%22type%22%3A%22transformer%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22starting%22%3A%7B%22shape%22%3A%7B%22type%22%3A%5B%22circle%22%5D%2C%22coords%22%3A%5B%5B4%2C0%5D%2C%5B-4%2C4.898587195273712e-16%5D%5D%2C%22options%22%3A%5B%7B%7D%5D%7D%2C%22transformations%22%3A%5B%5D%7D%2C%22graphMode%22%3A%22interactive%22%2C%22listMode%22%3A%22dynamic%22%2C%22tools%22%3A%7B%22translation%22%3A%7B%22enabled%22%3Atrue%2C%22required%22%3Afalse%2C%22constraints%22%3A%7B%7D%7D%2C%22rotation%22%3A%7B%22enabled%22%3Atrue%2C%22required%22%3Afalse%2C%22constraints%22%3A%7B%22fixed%22%3Afalse%7D%2C%22coord%22%3A%5B-5%2C4%5D%7D%2C%22reflection%22%3A%7B%22enabled%22%3Atrue%2C%22required%22%3Afalse%2C%22constraints%22%3A%7B%22fixed%22%3Afalse%7D%2C%22coords%22%3A%5B%5B2%2C-4%5D%2C%5B2%2C2%5D%5D%7D%2C%22dilation%22%3A%7B%22enabled%22%3Atrue%2C%22required%22%3Afalse%2C%22constraints%22%3A%7B%22fixed%22%3Afalse%7D%2C%22coord%22%3A%5B6%2C6%5D%7D%7D%2C%22drawSolutionShape%22%3Atrue%2C%22gradeEmpty%22%3Afalse%2C%22graph%22%3A%7B%22range%22%3A%5B%5B-10%2C10%5D%2C%5B-10%2C10%5D%5D%2C%22step%22%3A%5B1%2C1%5D%2C%22markings%22%3A%22grid%22%2C%22labels%22%3A%5B%22x%22%2C%22y%22%5D%2C%22backgroundImage%22%3A%7B%22url%22%3Anull%2C%22scale%22%3A1%2C%22bottom%22%3A0%2C%22left%22%3A0%7D%2C%22showProtractor%22%3Afalse%2C%22showRuler%22%3Afalse%2C%22rulerLabel%22%3A%22%22%2C%22rulerTicks%22%3A10%2C%22gridStep%22%3A%5B1%2C1%5D%2C%22snapStep%22%3A%5B0.5%2C0.5%5D%7D%2C%22version%22%3A1.2%2C%22correct%22%3A%7B%22transformations%22%3A%5B%7B%22center%22%3A%5B-5%2C4%5D%2C%22angleDeg%22%3A210%2C%22type%22%3A%22rotation%22%7D%5D%2C%22shape%22%3A%7B%22type%22%3A%5B%22circle%22%5D%2C%22coords%22%3A%5B%5B-14.794228634059941%2C2.9641016151377744%5D%2C%5B-7.866025403784436%2C6.964101615137752%5D%5D%2C%22options%22%3A%5B%7B%7D%5D%7D%7D%7D%7D%2C%22transformer%202%22%3A%7B%22type%22%3A%22transformer%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22starting%22%3A%7B%22shape%22%3A%7B%22type%22%3A%5B%22angle%22%5D%2C%22coords%22%3A%5B%5B4.5%2C5%5D%2C%5B-5%2C7%5D%2C%5B-3.5%2C-4%5D%5D%2C%22options%22%3A%5B%7B%22reflex%22%3Afalse%7D%5D%7D%2C%22transformations%22%3A%5B%5D%7D%2C%22graphMode%22%3A%22interactive%22%2C%22listMode%22%3A%22dynamic%22%2C%22tools%22%3A%7B%22translation%22%3A%7B%22enabled%22%3Atrue%2C%22required%22%3Afalse%2C%22constraints%22%3A%7B%7D%7D%2C%22rotation%22%3A%7B%22enabled%22%3Atrue%2C%22required%22%3Afalse%2C%22constraints%22%3A%7B%22fixed%22%3Afalse%7D%2C%22coord%22%3A%5B1%2C6%5D%7D%2C%22reflection%22%3A%7B%22enabled%22%3Atrue%2C%22required%22%3Afalse%2C%22constraints%22%3A%7B%22fixed%22%3Afalse%7D%2C%22coords%22%3A%5B%5B2%2C-4%5D%2C%5B2%2C2%5D%5D%7D%2C%22dilation%22%3A%7B%22enabled%22%3Atrue%2C%22required%22%3Afalse%2C%22constraints%22%3A%7B%22fixed%22%3Afalse%7D%2C%22coord%22%3A%5B6%2C6%5D%7D%7D%2C%22drawSolutionShape%22%3Atrue%2C%22gradeEmpty%22%3Afalse%2C%22graph%22%3A%7B%22range%22%3A%5B%5B-10%2C10%5D%2C%5B-10%2C10%5D%5D%2C%22step%22%3A%5B1%2C1%5D%2C%22markings%22%3A%22grid%22%2C%22labels%22%3A%5B%22x%22%2C%22y%22%5D%2C%22backgroundImage%22%3A%7B%22url%22%3Anull%2C%22scale%22%3A1%2C%22bottom%22%3A0%2C%22left%22%3A0%7D%2C%22showProtractor%22%3Afalse%2C%22showRuler%22%3Afalse%2C%22rulerLabel%22%3A%22%22%2C%22rulerTicks%22%3A10%2C%22gridStep%22%3A%5B1%2C1%5D%2C%22snapStep%22%3A%5B0.5%2C0.5%5D%7D%2C%22version%22%3A1.2%2C%22correct%22%3A%7B%22transformations%22%3A%5B%5D%2C%22shape%22%3A%7B%22type%22%3A%5B%22angle%22%5D%2C%22coords%22%3A%5B%5B4.5%2C5%5D%2C%5B-5%2C7%5D%2C%5B-3.5%2C-4%5D%5D%2C%22options%22%3A%5B%7B%22reflex%22%3Afalse%7D%5D%7D%7D%7D%7D%2C%22number-line%201%22%3A%7B%22type%22%3A%22number-line%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22correctRel%22%3A%22gt%22%2C%22isInequality%22%3Atrue%2C%22range%22%3A%5B0%2C10%5D%2C%22labelRange%22%3A%5Bnull%2Cnull%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%2C%22interactive-graph%201%22%3A%7B%22type%22%3A%22interactive-graph%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22step%22%3A%5B1%2C1%5D%2C%22backgroundImage%22%3A%7B%22url%22%3Anull%2C%22scale%22%3A1%2C%22bottom%22%3A0%2C%22left%22%3A0%7D%2C%22markings%22%3A%22graph%22%2C%22labels%22%3A%5B%22x%22%2C%22y%22%5D%2C%22showProtractor%22%3Atrue%2C%22showRuler%22%3Atrue%2C%22rulerLabel%22%3A%22%22%2C%22rulerTicks%22%3A10%2C%22range%22%3A%5B%5B-10%2C10%5D%2C%5B-10%2C10%5D%5D%2C%22gridStep%22%3A%5B1%2C1%5D%2C%22snapStep%22%3A%5B0.5%2C0.5%5D%2C%22graph%22%3A%7B%22type%22%3A%22linear%22%7D%2C%22correct%22%3A%7B%22type%22%3A%22linear%22%2C%22coords%22%3Anull%7D%7D%7D%2C%22interactive-graph%202%22%3A%7B%22type%22%3A%22interactive-graph%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22step%22%3A%5B1%2C1%5D%2C%22backgroundImage%22%3A%7B%22url%22%3Anull%2C%22scale%22%3A1%2C%22bottom%22%3A0%2C%22left%22%3A0%7D%2C%22markings%22%3A%22graph%22%2C%22labels%22%3A%5B%22x%22%2C%22y%22%5D%2C%22showProtractor%22%3Afalse%2C%22showRuler%22%3Afalse%2C%22rulerLabel%22%3A%22%22%2C%22rulerTicks%22%3A10%2C%22range%22%3A%5B%5B-10%2C10%5D%2C%5B-10%2C10%5D%5D%2C%22gridStep%22%3A%5B1%2C1%5D%2C%22snapStep%22%3A%5B0.5%2C0.5%5D%2C%22graph%22%3A%7B%22type%22%3A%22angle%22%7D%2C%22correct%22%3A%7B%22type%22%3A%22angle%22%7D%7D%7D%2C%22interactive-graph%203%22%3A%7B%22type%22%3A%22interactive-graph%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22step%22%3A%5B1%2C1%5D%2C%22backgroundImage%22%3A%7B%22url%22%3Anull%2C%22scale%22%3A1%2C%22bottom%22%3A0%2C%22left%22%3A0%7D%2C%22markings%22%3A%22graph%22%2C%22labels%22%3A%5B%22x%22%2C%22y%22%5D%2C%22showProtractor%22%3Afalse%2C%22showRuler%22%3Afalse%2C%22rulerLabel%22%3A%22%22%2C%22rulerTicks%22%3A10%2C%22range%22%3A%5B%5B-10%2C10%5D%2C%5B-10%2C10%5D%5D%2C%22gridStep%22%3A%5B1%2C1%5D%2C%22snapStep%22%3A%5B0.5%2C0.5%5D%2C%22graph%22%3A%7B%22type%22%3A%22ray%22%7D%2C%22correct%22%3A%7B%22type%22%3A%22ray%22%2C%22coords%22%3A%5B%5B-6.5%2C0.5%5D%2C%5B4%2C-2%5D%5D%7D%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%22images%22%3A%7B%7D%2C%22widgets%22%3A%7B%7D%7D%2C%22calculator%22%3Afalse%7D%2C%22hints%22%3A%5B%5D%7D). Note that some of these may or may not be styled appropriately, depending on if they use interactive2 (the changes for which are contained in a separate review).

Try dragging a point over the vertex [here](http://localhost:9000/test.html#content=%7B%22question%22%3A%7B%22content%22%3A%22%5Cn%5Cn%5B%5B%E2%98%83%20interactive-graph%201%5D%5D%22%2C%22images%22%3A%7B%7D%2C%22widgets%22%3A%7B%22interactive-graph%201%22%3A%7B%22type%22%3A%22interactive-graph%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22step%22%3A%5B1%2C1%5D%2C%22backgroundImage%22%3A%7B%22url%22%3Anull%2C%22scale%22%3A1%2C%22bottom%22%3A0%2C%22left%22%3A0%7D%2C%22markings%22%3A%22graph%22%2C%22labels%22%3A%5B%22x%22%2C%22y%22%5D%2C%22showProtractor%22%3Afalse%2C%22showRuler%22%3Afalse%2C%22rulerLabel%22%3A%22%22%2C%22rulerTicks%22%3A10%2C%22range%22%3A%5B%5B-10%2C10%5D%2C%5B-10%2C10%5D%5D%2C%22gridStep%22%3A%5B1%2C1%5D%2C%22snapStep%22%3A%5B0.5%2C0.5%5D%2C%22graph%22%3A%7B%22type%22%3A%22angle%22%7D%2C%22correct%22%3A%7B%22type%22%3A%22angle%22%7D%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%22images%22%3A%7B%7D%2C%22widgets%22%3A%7B%7D%7D%2C%22calculator%22%3Afalse%7D%2C%22hints%22%3A%5B%5D%7D). Make sure that your mouse enters and exits the vertex.

Try the flip button on transformer's reflection tool, for example.

Reviewers: jack

Subscribers: eater

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