Update `make demo` for github-pages

Summary:
automating git push -f is actually less scary than doing it
manually, because if you do it manually and mess up, it could
do really bad things to the upstream repo

Test Plan:
run `make demo`
Fix minor Orderer bug in Perseus One edit tab.

Currently if you drag cards into the Orderer from the bank, they persist
when you start editing a different item in Perseus One. The underlying
cause is that the Orderer, like many of our draggy widgets, relies on
state instead of props for its core functionality.

Test Plan:
Reproduce bug on local webapp before change.
Fail to reproduce bug on local webapp after change.

Auditors: jack
Be more explicit about resetting Orderer state on prop change.

This only (to the best of my knowledge) gets called when moving between
multiple Orderer items in Perseus One, in which case this.state.current
gets set to []. But that assumption may change at some point, and since
we set this.state.current equal to this.props.current in getInitialState,
we should do the same here.

Test Plan:
Moved between two Orderer-weilding items in Perseus One, verified that
state was correctly reset. (No change from previous commit.)

Auditors: jack
Change Graph Settings to RangeInput

Summary: Just abstracts it a little, makes it nicer to read

Test Plan:
Open up interactive-graph, try changing the
(1) x range
(2) y range
(3) tick step
(4) grid step
(5) snap step

Reviewers: jack

Reviewed By: jack

Subscribers: alpert

Differential Revision: http://phabricator.khanacademy.org/D7521
Replace GraphSettings Selector with ButtonGroup

Test Plan: Try to change markings

Reviewers: jack

Reviewed By: jack

Subscribers: justinjaffray, alpert

Differential Revision: http://phabricator.khanacademy.org/D7522
Move [interactive-]number-lines buttons above scratchpad

Test Plan:
 * subperseus
 * show scratchpad
 * scribble

Auditors: eater
Make numberline use jsonifyprops

Summary: I want to add a new general prop, so this simplifies that.

Test Plan: * Add a number line and see it work

Reviewers: brianmerlob, jack

Reviewed By: jack

Differential Revision: http://phabricator.khanacademy.org/D7697
fix smiley below submit button

Test plan: deploy :/

Auditors: eater
Add paragraph classes

Summary:
Fix spacing

Test Plan:
* Add multiple paragraphs
* They should be spaced properly

Auditors: jack
Allow drags from other browser windows.

Which is unnecessarily complicated.

Test Plan:
* open https://ka-perseus-graphie.s3.amazonaws.com/bde3297f79638611aa830a582e906e49b1d5cf46.png
* drag it into a perseus one question area
* see the image inserted into the area
* drag an image from my desktop
* see the same (well almost... /assessment_items/images 500'ed, but it
  would have been the same otherwise)

Auditors: alex
Wrap everything top-level in a paragraph

Summary:
Monkey patch ALL the things!

We weren't wrapping tables in div class="paragraph", so they were missing padding to
separate them from other things (especially tables at the end of the questionarea
running into hints).
We also weren't wrapping non-paragraphs in QuestionParagraph elements to get orange
"has been answered" indicators. This fixes that too.

This commit is a total hack that fixes those problems by monkey-patching marked-react
(sorry!).

Test Plan:
Enable `shouldIndicate` in src/item-renderer.jsx (we should make this enabled in test.html by default)
visit:
http://localhost:9000/test.html#content=%7B%22question%22%3A%7B%22content%22%3A%22%5Cnheader%201%20%7C%20header%202%20%7C%20header%203%5Cn-%20%7C%20-%20%7C%20-%5Cndata%201%20%7C%20data%202%20%7C%20data%203%5Cndata%204%20%7C%20*bold*%20%7C%20data%206%5Cndata%207%20%7C%20data%208%20%7C%20data%209%5B%5B%E2%98%83%20input-number%201%5D%5D%5Cn%5Cn%5B%5B%E2%98%83%20input-number%202%5D%5D%22%2C%22widgets%22%3A%7B%22input-number%201%22%3A%7B%22type%22%3A%22input-number%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22value%22%3A%220%22%2C%22simplify%22%3A%22required%22%2C%22size%22%3A%22normal%22%2C%22inexact%22%3Afalse%2C%22maxError%22%3A0.1%2C%22answerType%22%3A%22number%22%7D%7D%2C%22input-number%202%22%3A%7B%22type%22%3A%22input-number%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22value%22%3A%220%22%2C%22simplify%22%3A%22required%22%2C%22size%22%3A%22normal%22%2C%22inexact%22%3Afalse%2C%22maxError%22%3A0.1%2C%22answerType%22%3A%22number%22%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
look at the lovely orange marker for the table, and note that the table is wrapped in a <div class="paragraph">

Reviewers: justinjaffray

Reviewed By: justinjaffray

Subscribers: alpert, alex

Differential Revision: http://phabricator.khanacademy.org/D7749
Measurer: Add width/height option

Summary: Adds a width and height option to control the size of a measurer box

Test Plan: http://localhost:9000/test.html#content=%7B%22question%22%3A%7B%22content%22%3A%22**Measure%20the%20length%20of%20each%20line%20to%20the%20nearest%20%24%5C%5Cdfrac%7B1%7D%7B4%7D%24%20cm%2C%20and%20then%20plot%20the%20measurements%20of%20the%20lines%20on%20this%20line%20plot.**%20%20%20%5Cn%5B%5B%E2%98%83%20measurer%201%5D%5D%5Cn%5Cn%5B%5B%E2%98%83%20plotter%201%5D%5D%5Cn%22%2C%22widgets%22%3A%7B%22measurer%201%22%3A%7B%22type%22%3A%22measurer%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22imageUrl%22%3A%22https%3A%2F%2Fka-perseus-graphie.s3.amazonaws.com%2Fa74adc9e608c2ecb03551040f59bfe97961d2ca2.png%22%2C%22imageTop%22%3A0%2C%22imageLeft%22%3A0%2C%22width%22%3A480%2C%22height%22%3A200%2C%22showProtractor%22%3Afalse%2C%22showRuler%22%3Atrue%2C%22rulerLabel%22%3A%22cm%22%2C%22rulerTicks%22%3A4%2C%22rulerPixels%22%3A40%2C%22rulerLength%22%3A10%7D%7D%2C%22plotter%201%22%3A%7B%22type%22%3A%22plotter%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22correct%22%3A%5B0%2C0%2C0%2C1%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C1%2C0%2C0%2C0%2C0%2C1%2C0%2C0%2C0%5D%2C%22starting%22%3A%5B0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%5D%2C%22type%22%3A%22dotplot%22%2C%22labels%22%3A%5B%22Length%20(cm)%22%2C%22%22%5D%2C%22categories%22%3A%5B%22%242%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%243%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%244%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%245%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%246%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%247%24%22%5D%2C%22scaleY%22%3A1%2C%22maxY%22%3A10%2C%22snapsPerLine%22%3A2%2C%22labelInterval%22%3A1%7D%7D%7D%7D%2C%22answerArea%22%3A%7B%22type%22%3A%22multiple%22%2C%22options%22%3A%7B%22content%22%3A%22Measure%20the%20length%20of%20each%20line%2C%20and%20create%20a%20line%20plot%20that%20shows%20the%20measurements.%22%2C%22widgets%22%3A%7B%7D%7D%2C%22calculator%22%3Afalse%7D%2C%22hints%22%3A%5B%7B%22content%22%3A%22Line%20up%20the%20ruler%20to%20each%20line%20so%20the%20edge%20of%20the%20ruler%20is%20lined%20up%20with%20the%20end%20of%20the%20line.%5Cn%5Cn!%5B%5D(https%3A%2F%2Fka-perseus-images.s3.amazonaws.com%2F77752e5a8dd9992549121dbf8c70c40482a839fd.png)%5Cn%5CnThis%20line%20measures%20%24%5C%5Cpurple%7B6%20%5C%5Cdfrac%7B1%7D%7B4%7D%5C%5Ctext%20%7B%20cm%7D%7D%24.%20%20%20%22%2C%22widgets%22%3A%7B%7D%7D%2C%7B%22content%22%3A%22Place%20a%20dot%20above%20%24%5C%5Cpurple%7B6%20%5C%5Cdfrac%7B1%7D%7B4%7D%5C%5Ctext%20%7B%20cm%7D%7D%24%20on%20the%20number%20line.%20%20%5Cn%5Cn!%5B%5D(https%3A%2F%2Fka-perseus-images.s3.amazonaws.com%2F61fdaea2f905e4715b55611b5eacc9c5126d5cf2.png)%22%2C%22widgets%22%3A%7B%7D%7D%2C%7B%22content%22%3A%22The%20measures%20of%20all%20%243%24%20lines%20are%3A%20%20%5Cn%24%5C%5Cqquad%24%24%5C%5Cgreen%7B5%20%5C%5Ctext%20%7B%20cm%7D%7D%24%2C%20%24%5C%5Cred%7B2%5C%5Cdfrac%7B3%7D%7B4%7D%20%5C%5Ctext%20%7B%20cm%7D%7D%24%2C%20%24%5C%5Cpurple%7B6%20%5C%5Cdfrac%7B1%7D%7B4%7D%5C%5Ctext%20%7B%20cm%7D%7D%24%20%20%22%2C%22widgets%22%3A%7B%7D%7D%2C%7B%22content%22%3A%22!%5B%5D(https%3A%2F%2Fka-perseus-images.s3.amazonaws.com%2Fef67984b757fa869d487f65a222321fb65afa5ea.png)%5Cn%22%2C%22widgets%22%3A%7B%7D%7D%5D%7D

Reviewers: justinjaffray

Reviewed By: justinjaffray

Subscribers: alpert, alex

Differential Revision: http://phabricator.khanacademy.org/D7778
Measurer: Change width/height to box[]

Test Plan:
http://localhost:9000/test.html#content=%7B%22question%22%3A%7B%22content%22%3A%22**Measure%20the%20length%20of%20each%20line%20to%20the%20nearest%20%24%5C%5Cdfrac%7B1%7D%7B4%7D%24%20cm%2C%20and%20then%20plot%20the%20measurements%20of%20the%20lines%20on%20this%20line%20plot.**%20%20%20%5Cn%5B%5B%E2%98%83%20measurer%201%5D%5D%5Cn%5Cn%5B%5B%E2%98%83%20plotter%201%5D%5D%5Cn%22%2C%22widgets%22%3A%7B%22measurer%201%22%3A%7B%22type%22%3A%22measurer%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22imageUrl%22%3A%22https%3A%2F%2Fka-perseus-graphie.s3.amazonaws.com%2Fa74adc9e608c2ecb03551040f59bfe97961d2ca2.png%22%2C%22imageTop%22%3A0%2C%22imageLeft%22%3A0%2C%22box%22%3A%5B480%2C200%5D%2C%22showProtractor%22%3Afalse%2C%22showRuler%22%3Atrue%2C%22rulerLabel%22%3A%22cm%22%2C%22rulerTicks%22%3A4%2C%22rulerPixels%22%3A40%2C%22rulerLength%22%3A10%7D%7D%2C%22plotter%201%22%3A%7B%22type%22%3A%22plotter%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22correct%22%3A%5B0%2C0%2C0%2C1%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C1%2C0%2C0%2C0%2C0%2C1%2C0%2C0%2C0%5D%2C%22starting%22%3A%5B0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%5D%2C%22type%22%3A%22dotplot%22%2C%22labels%22%3A%5B%22Length%20(cm)%22%2C%22%22%5D%2C%22categories%22%3A%5B%22%242%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%243%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%244%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%245%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%246%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%24%24%22%2C%22%247%24%22%5D%2C%22scaleY%22%3A1%2C%22maxY%22%3A10%2C%22snapsPerLine%22%3A2%2C%22labelInterval%22%3A1%7D%7D%7D%7D%2C%22answerArea%22%3A%7B%22type%22%3A%22multiple%22%2C%22options%22%3A%7B%22content%22%3A%22Measure%20the%20length%20of%20each%20line%2C%20and%20create%20a%20line%20plot%20that%20shows%20the%20measurements.%22%2C%22widgets%22%3A%7B%7D%7D%2C%22calculator%22%3Afalse%7D%2C%22hints%22%3A%5B%7B%22content%22%3A%22Line%20up%20the%20ruler%20to%20each%20line%20so%20the%20edge%20of%20the%20ruler%20is%20lined%20up%20with%20the%20end%20of%20the%20line.%5Cn%5Cn!%5B%5D(https%3A%2F%2Fka-perseus-images.s3.amazonaws.com%2F77752e5a8dd9992549121dbf8c70c40482a839fd.png)%5Cn%5CnThis%20line%20measures%20%24%5C%5Cpurple%7B6%20%5C%5Cdfrac%7B1%7D%7B4%7D%5C%5Ctext%20%7B%20cm%7D%7D%24.%20%20%20%22%2C%22widgets%22%3A%7B%7D%7D%2C%7B%22content%22%3A%22Place%20a%20dot%20above%20%24%5C%5Cpurple%7B6%20%5C%5Cdfrac%7B1%7D%7B4%7D%5C%5Ctext%20%7B%20cm%7D%7D%24%20on%20the%20number%20line.%20%20%5Cn%5Cn!%5B%5D(https%3A%2F%2Fka-perseus-images.s3.amazonaws.com%2F61fdaea2f905e4715b55611b5eacc9c5126d5cf2.png)%22%2C%22widgets%22%3A%7B%7D%7D%2C%7B%22content%22%3A%22The%20measures%20of%20all%20%243%24%20lines%20are%3A%20%20%5Cn%24%5C%5Cqquad%24%24%5C%5Cgreen%7B5%20%5C%5Ctext%20%7B%20cm%7D%7D%24%2C%20%24%5C%5Cred%7B2%5C%5Cdfrac%7B3%7D%7B4%7D%20%5C%5Ctext%20%7B%20cm%7D%7D%24%2C%20%24%5C%5Cpurple%7B6%20%5C%5Cdfrac%7B1%7D%7B4%7D%5C%5Ctext%20%7B%20cm%7D%7D%24%20%20%22%2C%22widgets%22%3A%7B%7D%7D%2C%7B%22content%22%3A%22!%5B%5D(https%3A%2F%2Fka-perseus-images.s3.amazonaws.com%2Fef67984b757fa869d487f65a222321fb65afa5ea.png)%5Cn%22%2C%22widgets%22%3A%7B%7D%7D%5D%7D

Auditors: justinjaffray
Makefile: Add `make lint`

Test Plan:
`make lint`

Auditors: brianmerlob
Warn the user if they are using a non-square image

Summary:
If plotter gets an image that isn't a square, it stretches it to be a
square. This causes situations like this:

{F15558}

So now when the image isn't a square, the user receives this warning:

{F15559}

The long-term fix for this is probably to either handle non-square
images (but I can't think of a particularly nice way to do that) or to
provide a way to crop the image.

One thing to consider is that we might want to fuzz it a bit to allow
for images that are "square enough", but I'm not sure what an
appropriate tolerance might be.

Test Plan:
* Add a plotter, and use a square image as the 'pic'
  * http://i.imgur.com/Y59UMTZ.png is one
  * Should not get any warning
* Change it to a non-square image
  * http://i.imgur.com/ophEqb8.png is one
  * Should get the noted warning

Reviewers: eater, jack

Reviewed By: jack

Subscribers: alpert

Differential Revision: http://phabricator.khanacademy.org/D7812
Tweak editor css

Test Plan:
spot check

Auditors: brianmerlob
fix lists

Test Plan:
http://localhost:9000/test.html#content=%7B%22question%22%3A%7B%22content%22%3A%22%20*%20hi%5Cn%20*%20bye%22%2C%22widgets%22%3A%7B%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

Auditors: justinjaffray
Divorce answer formats from suggested answer formats

Caveat:
(1) Breaks backwards compatiblity (because I now have the intention to backfill soon)
(2) Depends on changes in ke (spcifically answerForms being taken as an array)

Also:
- adds mixins JsonifyProps and Changeable
- adds Justin's changes (currentValue)
- es6ify (=>) the formExamples

Auditors: eater
Add A/B test for clues in radio

Test Plan:
1) In order to run, you'd `make all` in perseus (assuming you have an existing webapp)
2) Should show for half the users, and not show for the other half

Reviewers: eater

Reviewed By: eater

Subscribers: alpert

Differential Revision: http://phabricator.khanacademy.org/D7369
Fix labels for NumberInput

Test Plan:
(1) Make sure it works with labels
(2) Make sure it works without labels

Auditors: jack