Remove webpack devtool eval

Summary:
webpack devtool eval wraps everything in an eval that doesn't
wrap files in closures, resulting in leaking `var`s to the
global namespace. While I hear the eval method is faster,
I'm a bit scared of changing semantics for that. (And we
can work on speeding this up after, maybe with a plugin
to closurify everything before using devtool eval.)

Test Plan:
 #yolo
tested in KAQuest repo, where devtool eval was causing globals to
be emitted for vars.

Auditors: alpert
Output errors to the console

Auditors: eater
Graphie: Make `0` a valid key

Summary:
I was using poor falsiness logic that treated `0` as no key.
This diff makes graphie explicitly check for keys being null
or undefined, and all other keys are counted as defined.

Test Plan:
Loaded test.html and things didn't break
I don't have an easy local repro of this so #yolo

Auditors: eater
Memoize KAS parsing

Summary:
profiling showed KAS parsing being the slow point. memoizing makes
it all fast again :D. maybe we should clear out the cache based on
prop changes so we don't memory leak, but that's probably not a
huge concern. maybe.

Test Plan:
1. go to this [slow item](http://localhost:9000/test.html#content=%7B%22question%22%3A%7B%22content%22%3A%22%24%5C%5Cblue%7Bf%28x%29%7D%24%20is%20plotted%20in%20blue.%20%20%5Cn%24%5C%5Cred%7Bg%28x%29%7D%24%20is%20the%20derivative%20of%20%24%5C%5Cblue%7Bf%28x%29%7D%24%2C%20and%20is%20plotted%20in%20red.%5Cn%5Cn%2A%2ADrag%20the%20points%20to%20change%20%24%5C%5Cblue%7Bf%28x%29%7D%24%20so%20its%20derivative%2C%20%24%5C%5Cred%7Bg%28x%29%7D%24%2C%20passes%20through%20points%20%24%28-7%2C0%29%24%2C%20%24%28-1%2C-2%29%24%2C%20and%20%24%285%2C0%29%24.%2A%2A%5Cn%5Cn%5B%5B%E2%98%83%20interaction%201%5D%5D%22%2C%22images%22%3A%7B%22https%3A%2F%2Fka-perseus-graphie.s3.amazonaws.com%2Fda8df81c78b22f5c69d477d8eabfb583968eaf84.png%22%3A%7B%22width%22%3A400%2C%22height%22%3A70%7D%2C%22https%3A%2F%2Fka-perseus-graphie.s3.amazonaws.com%2Fb59fc02ca1aae800977b8793ed22f647a1aa75ee.png%22%3A%7B%22width%22%3A425%2C%22height%22%3A150%7D%7D%2C%22widgets%22%3A%7B%22interaction%201%22%3A%7B%22type%22%3A%22interaction%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22graph%22%3A%7B%22box%22%3A%5B400%2C400%5D%2C%22labels%22%3A%5B%22x%22%2C%22y%22%5D%2C%22range%22%3A%5B%5B-10%2C10%5D%2C%5B-10%2C10%5D%5D%2C%22tickStep%22%3A%5B1%2C1%5D%2C%22gridStep%22%3A%5B1%2C1%5D%2C%22markings%22%3A%22graph%22%2C%22scale%22%3A%5B20%2C20%5D%7D%2C%22elements%22%3A%5B%7B%22type%22%3A%22function%22%2C%22key%22%3A%22function-ce9d29%22%2C%22options%22%3A%7B%22value%22%3A%22-%5C%5Cfrac%7B3%7D%7B2%7D%5C%5Cleft%28%5C%5Cfrac%7By_1-y_0%7D%7B%5C%5Cleft%28x_1-x_0%5C%5Cright%29%5E3%7D%5C%5Cright%29%5C%5Cleft%28%5C%5Cfrac%7B%5C%5Cleft%28x-x_0%5C%5Cright%29%5E3%7D%7B3%7D-%5C%5Cleft%28x_1-x_0%5C%5Cright%29%5E2%5C%5Cleft%28x-x_0%5C%5Cright%29%5C%5Cright%29%2By_0%22%2C%22rangeMin%22%3A%22-10%22%2C%22rangeMax%22%3A%2210%22%2C%22color%22%3A%22%236495ED%22%2C%22strokeDasharray%22%3A%22%22%2C%22strokeWidth%22%3A2%2C%22funcName%22%3A%22f%22%7D%7D%2C%7B%22type%22%3A%22function%22%2C%22key%22%3A%22function-d9295c%22%2C%22options%22%3A%7B%22value%22%3A%22%5C%5Cfrac%7Bf%5C%5Cleft%28x%2B0.01%5C%5Cright%29-f%5C%5Cleft%28x%5C%5Cright%29%7D%7B0.01%7D%2Bx_0-x_0%2Bx_1-x_1%2By_1-y_1%22%2C%22rangeMin%22%3A%22-10%22%2C%22rangeMax%22%3A%2210%22%2C%22color%22%3A%22%23DF0030%22%2C%22strokeDasharray%22%3A%22.%22%2C%22strokeWidth%22%3A2%2C%22funcName%22%3A%22g%22%7D%7D%2C%7B%22type%22%3A%22movable-point%22%2C%22key%22%3A%22movable-point-f4c900%22%2C%22options%22%3A%7B%22startX%22%3A%220%22%2C%22startY%22%3A%220%22%2C%22constraint%22%3A%22snap%22%2C%22snap%22%3A0.5%2C%22constraintFn%22%3A%220%22%2C%22constraintXMin%22%3A%22-10%22%2C%22constraintXMax%22%3A%2210%22%2C%22constraintYMin%22%3A%22-10%22%2C%22constraintYMax%22%3A%2210%22%2C%22varSubscript%22%3A0%7D%7D%2C%7B%22type%22%3A%22movable-point%22%2C%22key%22%3A%22movable-point-b8c4c1%22%2C%22options%22%3A%7B%22startX%22%3A%224%22%2C%22startY%22%3A%224%22%2C%22constraint%22%3A%22snap%22%2C%22snap%22%3A0.5%2C%22constraintFn%22%3A%220%22%2C%22constraintXMin%22%3A%22-10%22%2C%22constraintXMax%22%3A%2210%22%2C%22constraintYMin%22%3A%22-10%22%2C%22constraintYMax%22%3A%2210%22%2C%22varSubscript%22%3A1%7D%7D%2C%7B%22type%22%3A%22point%22%2C%22key%22%3A%22point-db86ec%22%2C%22options%22%3A%7B%22coordX%22%3A%225%22%2C%22coordY%22%3A%220%22%2C%22color%22%3A%22black%22%7D%7D%2C%7B%22type%22%3A%22point%22%2C%22key%22%3A%22point-8b1890%22%2C%22options%22%3A%7B%22coordX%22%3A%22-1%22%2C%22coordY%22%3A%22-2%22%2C%22color%22%3A%22black%22%7D%7D%2C%7B%22type%22%3A%22point%22%2C%22key%22%3A%22point-196f99%22%2C%22options%22%3A%7B%22coordX%22%3A%22-7%22%2C%22coordY%22%3A%220%22%2C%22color%22%3A%22black%22%7D%7D%5D%7D%2C%22version%22%3A%7B%22major%22%3A0%2C%22minor%22%3A0%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%22itemDataVersion%22%3A%7B%22major%22%3A0%2C%22minor%22%3A1%7D%2C%22hints%22%3A%5B%5D%7D)
2. see it be fast
3. ???
4. profit

Reviewers: eater

Differential Revision: http://phabricator.khanacademy.org/D11321
Use compiled functions because (gottagofast)

Summary:
Uses the magic KAS.compile to compile all the functions for fast
plotting

Test Plan:
the same
[slow item](http://localhost:9000/test.html#content=%7B%22question%22%3A%7B%22content%22%3A%22%24%5C%5Cblue%7Bf%28x%29%7D%24%20is%20plotted%20in%20blue.%20%20%5Cn%24%5C%5Cred%7Bg%28x%29%7D%24%20is%20the%20derivative%20of%20%24%5C%5Cblue%7Bf%28x%29%7D%24%2C%20and%20is%20plotted%20in%20red.%5Cn%5Cn%2A%2ADrag%20the%20points%20to%20change%20%24%5C%5Cblue%7Bf%28x%29%7D%24%20so%20its%20derivative%2C%20%24%5C%5Cred%7Bg%28x%29%7D%24%2C%20passes%20through%20points%20%24%28-7%2C0%29%24%2C%20%24%28-1%2C-2%29%24%2C%20and%20%24%285%2C0%29%24.%2A%2A%5Cn%5Cn%5B%5B%E2%98%83%20interaction%201%5D%5D%22%2C%22images%22%3A%7B%22https%3A%2F%2Fka-perseus-graphie.s3.amazonaws.com%2Fda8df81c78b22f5c69d477d8eabfb583968eaf84.png%22%3A%7B%22width%22%3A400%2C%22height%22%3A70%7D%2C%22https%3A%2F%2Fka-perseus-graphie.s3.amazonaws.com%2Fb59fc02ca1aae800977b8793ed22f647a1aa75ee.png%22%3A%7B%22width%22%3A425%2C%22height%22%3A150%7D%7D%2C%22widgets%22%3A%7B%22interaction%201%22%3A%7B%22type%22%3A%22interaction%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22graph%22%3A%7B%22box%22%3A%5B400%2C400%5D%2C%22labels%22%3A%5B%22x%22%2C%22y%22%5D%2C%22range%22%3A%5B%5B-10%2C10%5D%2C%5B-10%2C10%5D%5D%2C%22tickStep%22%3A%5B1%2C1%5D%2C%22gridStep%22%3A%5B1%2C1%5D%2C%22markings%22%3A%22graph%22%2C%22scale%22%3A%5B20%2C20%5D%7D%2C%22elements%22%3A%5B%7B%22type%22%3A%22function%22%2C%22key%22%3A%22function-ce9d29%22%2C%22options%22%3A%7B%22value%22%3A%22-%5C%5Cfrac%7B3%7D%7B2%7D%5C%5Cleft%28%5C%5Cfrac%7By_1-y_0%7D%7B%5C%5Cleft%28x_1-x_0%5C%5Cright%29%5E3%7D%5C%5Cright%29%5C%5Cleft%28%5C%5Cfrac%7B%5C%5Cleft%28x-x_0%5C%5Cright%29%5E3%7D%7B3%7D-%5C%5Cleft%28x_1-x_0%5C%5Cright%29%5E2%5C%5Cleft%28x-x_0%5C%5Cright%29%5C%5Cright%29%2By_0%22%2C%22rangeMin%22%3A%22-10%22%2C%22rangeMax%22%3A%2210%22%2C%22color%22%3A%22%236495ED%22%2C%22strokeDasharray%22%3A%22%22%2C%22strokeWidth%22%3A2%2C%22funcName%22%3A%22f%22%7D%7D%2C%7B%22type%22%3A%22function%22%2C%22key%22%3A%22function-d9295c%22%2C%22options%22%3A%7B%22value%22%3A%22%5C%5Cfrac%7Bf%5C%5Cleft%28x%2B0.01%5C%5Cright%29-f%5C%5Cleft%28x%5C%5Cright%29%7D%7B0.01%7D%2Bx_0-x_0%2Bx_1-x_1%2By_1-y_1%22%2C%22rangeMin%22%3A%22-10%22%2C%22rangeMax%22%3A%2210%22%2C%22color%22%3A%22%23DF0030%22%2C%22strokeDasharray%22%3A%22.%22%2C%22strokeWidth%22%3A2%2C%22funcName%22%3A%22g%22%7D%7D%2C%7B%22type%22%3A%22movable-point%22%2C%22key%22%3A%22movable-point-f4c900%22%2C%22options%22%3A%7B%22startX%22%3A%220%22%2C%22startY%22%3A%220%22%2C%22constraint%22%3A%22snap%22%2C%22snap%22%3A0.5%2C%22constraintFn%22%3A%220%22%2C%22constraintXMin%22%3A%22-10%22%2C%22constraintXMax%22%3A%2210%22%2C%22constraintYMin%22%3A%22-10%22%2C%22constraintYMax%22%3A%2210%22%2C%22varSubscript%22%3A0%7D%7D%2C%7B%22type%22%3A%22movable-point%22%2C%22key%22%3A%22movable-point-b8c4c1%22%2C%22options%22%3A%7B%22startX%22%3A%224%22%2C%22startY%22%3A%224%22%2C%22constraint%22%3A%22snap%22%2C%22snap%22%3A0.5%2C%22constraintFn%22%3A%220%22%2C%22constraintXMin%22%3A%22-10%22%2C%22constraintXMax%22%3A%2210%22%2C%22constraintYMin%22%3A%22-10%22%2C%22constraintYMax%22%3A%2210%22%2C%22varSubscript%22%3A1%7D%7D%2C%7B%22type%22%3A%22point%22%2C%22key%22%3A%22point-db86ec%22%2C%22options%22%3A%7B%22coordX%22%3A%225%22%2C%22coordY%22%3A%220%22%2C%22color%22%3A%22black%22%7D%7D%2C%7B%22type%22%3A%22point%22%2C%22key%22%3A%22point-8b1890%22%2C%22options%22%3A%7B%22coordX%22%3A%22-1%22%2C%22coordY%22%3A%22-2%22%2C%22color%22%3A%22black%22%7D%7D%2C%7B%22type%22%3A%22point%22%2C%22key%22%3A%22point-196f99%22%2C%22options%22%3A%7B%22coordX%22%3A%22-7%22%2C%22coordY%22%3A%220%22%2C%22color%22%3A%22black%22%7D%7D%5D%7D%2C%22version%22%3A%7B%22major%22%3A0%2C%22minor%22%3A0%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%22itemDataVersion%22%3A%7B%22major%22%3A0%2C%22minor%22%3A1%7D%2C%22hints%22%3A%5B%5D%7D)
as before

Reviewers: eater

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