rename serializeQuestion to serialize

Test plan:
* make test
* serialize an interactive-graph at dev:9000/test.html

Auditors: eater
Update styles of old expression edtior

Summary: The old expression editor is still shown on Windows/Chrome and all touch devices (e.g. iOS, Android phones, etc) and is clunky to work with because the tooltip explaining commands appears over top of the output. I've moved the output above the input, and added some styles to the input + output.

Test Plan: Play with the old-expression editor and judge the new styles.

Reviewers: eater, aria

Reviewed By: aria

Subscribers: alex, marcos

Maniphest Tasks: T2936

Differential Revision: http://phabricator.khanacademy.org/D12548
Fix input-overwriting on table widget editor

Summary: Cleaned up some of the inputs in the table-of-values widget editor so that you can more easily enter numbers (fixes T3021) and fixed blur/focus errors on the inputs (because of missing onFocus/onBlur default functions). I also removed a very lonely radio button ("Set of values (complete)") but can add it back if it's actually necessary.

Test Plan:
- Add a table widget
- Increase/decrease the number of columns and rows
- Observe that everything behaves as it did before (including grading) except you don't throw your computer out the window trying to enter a number other than 1 or 6 for the number of columns
- Observe that the # of rows are still constrained between 1-30, and the columns between 1-6

Reviewers: aria

Reviewed By: aria

Subscribers: cameron, eater

Maniphest Tasks: T3021

Differential Revision: http://phabricator.khanacademy.org/D12596
simple-markdown: add <autolinks> and <auto@mailto>

Summary: automatic <links> and <mailto@addresses>

Test Plan: `make test`

Reviewers: emily

Reviewed By: emily

Subscribers: alpert

Differential Revision: http://phabricator.khanacademy.org/D12565
simple-markdown: parse freeform urls

Test Plan: `make test`

Reviewers: emily

Reviewed By: emily

Differential Revision: http://phabricator.khanacademy.org/D12574
simple-markdown: Add reflink support

Summary:
    [Reflinks][1] are fun--they reference a "def" defined elsewhere in
    the markdown. To handle these, we keep extra state about what defs
    and what reflinks have been seen so far on the `state` object
    during the parse. Then when we reach a ref or a def, we fill in
    the newly acquired information into the reflink AST node.

    Yeah, mutation :(. But this works really surprisingly cleanly.
    The goal was to keep all the parsing inside the standard parse
    loop, so that anyone extending the parser still has all basic
    functionality intact, and I think this succeeds at that goal.

    [1] http://example.com/def

Test Plan:
`make test`
Experimented with it in the simple-markdown-tester widget

Reviewers: emily

Reviewed By: emily

Differential Revision: http://phabricator.khanacademy.org/D12614
renderer: better handling of invalid widget types

Summary:
Item x66d49f1bab5f8fa4 was crashing on the site because
of references to an "image-widget". This change makes
the renderer code-path resilient to nonexistant widgets
(in addition to the editor, which already worked).

Test plan:
Open localhost:9000/testrender.html, which has an
invalid "image-widget" widget (the type is just
"image" these days).

(the changes in testrender.html are just for testing)

Auditors: michelle
categorizer: fix labels for mobile

Summary:
<label> elements don't work correctly on mobile safari, so here's a
pseudo-label implementation that should work on both web and mobile.

Test Plan:
tested on [localhost](http://localhost:9000/test.html#content=%7B%22question%22%3A%7B%22content%22%3A%22%5B%5B%E2%98%83%20categorizer%202%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%22categorizer%202%22%3A%7B%22type%22%3A%22categorizer%22%2C%22graded%22%3Atrue%2C%22options%22%3A%7B%22items%22%3A%5B%221%22%2C%222%22%2C%223%22%5D%2C%22categories%22%3A%5B%22A%22%2C%22B%22%2C%22C%22%5D%2C%22values%22%3A%5B%5D%2C%22randomizeItems%22%3Afalse%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)

and on mobile with the exercise "rules for multiplying and dividing
negative numbers"

Reviewers: michelle, eater

Reviewed By: eater

Differential Revision: http://phabricator.khanacademy.org/D12700
Merge branch 'master' of https://github.com/Khan/perseus