Add basic calculator support to perseus

Summary:
This adds support for perseus opening and closing the calculator on a
per-item basis, and adds a checkbox for enabling and disabling the calculator
in the editor.

Test Plan:
Make a new item. Check the "show calculator" checkbox. Add the item
to an exercise with few other (non-calculator) items in it. Go through the
exercise. Ensure that the calculator shows up when that item is shown. Ensure
that the calculator goes away when the next item is shown. Ensure that the
calculator is then cleared the next time the calculator-enabled item shows up.

Reviewers: alpert, eater

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D2681
Make the number answer type more flexible

Summary:
Add the ability to have inexact answers as well as different number
forms than before.

Test Plan:
Select the number answer type, enable inexact answers, make sure an
answer within the error tolerance is accepted. Select a different answer type
(like mixed numbers), and make sure it accepts numbers with that form. Also,
type "3 pi" into the correct answer box, and make sure it expands to
"9.42477796076938".

Reviewers: alpert

Reviewed By: alpert

CC: eater

Differential Revision: http://phabricator.khanacademy.org/D2641
Don't break if there isn't an answer type set

Auditors: alpert, eater
Fixes to issues reported on "Orders of Magnitude" Perseus exercise.

Summary:
Anything that expression renders, it should accept.
- Accept \\cdot as input.
Most common error is trying to use "x" for multiplication.
- Be more explicit in examples about using * for numbers.
- Remove variable "x" from multiplication example.
Input=number does clunky validation, reformats answers, and blocks fractions.
- Remove it entirely.
Clicking on multiple choice labels no longer selects the adjacent radio input.
- Wrap radio inputs in labels, like it was before.

Test Plan:
    Expression tests pass.
    View new examples at testrender.html.
    Try items on iPhone.
    Click on multiplice choice labels.

Reviewers: alpert, jakesandlund

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D2691
Improving the fidelity of local rendering.

Summary:
- Use actual style sheets.
- More realistic DOM structure.
- Render all hints.
- Set to minimum fluid width.

Test Plan: Test rendering via testrender.html

Reviewers: alpert, jakesandlund

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D2693
Allow deleting radio choices

Auditors: emily
Misc fixes

If you use <label> always then clicking in the editor will mark that
choice as correct (oops). Maybe we need to have a useLabel prop or
something, not sure.

Auditors: alex
Add bold class to last hint

Summary: Make the last hint become bolded

Test Plan: Open an exercise, add some hints. See that the last one is bolded.

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D2703
Fix table of values style.

Test Plan: verified that the styles were correct on test.html

Auditors: alpert
Fix styles that got lost in the move.

Auditors: alpert, alex
Added an option to render multiplication using \times.

Summary:
Elizabeth requested this for exercises covering early algebra.
The example in "Acceptable formats" is consistent with the sign used.

Test Plan:
Toggle between \cdot and \times on test.html
Confirm rendering of \times via testrender.html
Preview a scientific notation item on local copy.

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D2721
Always clean up previous examples.

Test Plan:
test.html

Auditors: alpert
Simplifying expression examples.

Test Plan:
test.html

Auditors: alpert
Bold hints betterer

Summary:
Don't bold hints if they already have bold in them (aka having ** in
them)

Test Plan: Put bold in the last hint, see that it no longer bolds it.

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D2746
Acceptable formats (examples) for custom answer type.

Summary:
If all of the widgets inside a custom answer type have the same examples,
will show those examples.

Test Plan:
Added multiple expression or input-number widgets to custom answer
on test.html, instantly saw Acceptable formats being populated.
Did the same on local copy, then previewed with same results.

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D2749
Add icky multi-point support

Summary:
So much here that would be nicer if I can figure out how to make each
graph type into its own React component.

Reviewers: emily

Reviewed By: emily

Differential Revision: http://phabricator.khanacademy.org/D2759
Small changes for i18n tool

Reviewers: alex

Reviewed By: alex

Differential Revision: http://phabricator.khanacademy.org/D2779
Coerce this.props.calculator to a boolean.

Otherwise, when undefined, it toggles on every update().

Test Plan:
Tested this one line in the console before and after coercion.

Auditor: alpert
Use approximate comparison for 'point' type too

Reviewers: emily, jakesandlund

Reviewed By: emily

Differential Revision: http://phabricator.khanacademy.org/D2796
Make calculator property false by default

This way is more in-line with React's style.

Test Plan:
Test on local copy with an older assesment item that doesn't have a
"calculator" key in its JSON.

Auditors: alpert,emily