Adjust require dependencies for local mode

history.js and interface.js depend on exercises-stub.js

Test Plan: Mash ⌘R and notice a lack of JS errors on the console.

Auditors: emily
Correct angle in the hint

Summary: For https://khanacademy.atlassian.net/browse/AI-366121

Reviewers: eater, emily

Reviewed By: emily

Differential Revision: http://phabricator.khanacademy.org/D14169
Improve wording of exercise and allow non-integer answers

Summary: This replaces D14354, which I'm unable to land.

Differential Revision: http://phabricator.khanacademy.org/D14593
New exercise type of the form y=f(kx)

Reviewers: eater

Reviewed By: eater

Differential Revision: http://phabricator.khanacademy.org/D8872
Pass in an extra argument to the problemTemplateRendered trigger.

Right now, this extra argument will be ignored, because that's the
javascript way, which is why I'm ok making this an audit.  I will use
it in a subsequent webapp commit.

Auditors: alpert

Test Plan:
None (by itself)
Fix age_word_problems:solve-single-4

This problem type was broken, passing in strings for names when integers
were expected. @joel found this bug while moving answer area content.

Test Plan:
http://localhost:8765/exercises/age_word_problems.html?debug&problem=solve-single-4

Auditors: joel
Added graphie.fixedElippse and other helpers for wrapping SVG elements in DOM nodes

Summary:
graphie.fixedEllipse can now be used to create SVG ellipses with a known fixed size.
These ellipses will have their own SVG canvas and return both the underlying Raphael object
and the DOM node (i.e., a <div>) in which it is wrapped.

See D14159 for more.

Test Plan: See D14159.

Reviewers: aria

Reviewed By: aria

Differential Revision: http://phabricator.khanacademy.org/D14158
graphie.fixedPath and graphie.fixedLine functions for wrapping lines and paths in DOM nodes

Summary:
Similar to graphie.fixedEllipse, these functions wrap Raphael objects in their own
DOM nodes that can then be transformed.

Test Plan: See [TODO].

Reviewers: aria

Reviewed By: aria

Differential Revision: http://phabricator.khanacademy.org/D14161
Rename `boundNumber` to new `KhanUtil.bound`

Summary:
`svgParabolaPath` was still calling the old `boundNumber` function,
which was recently renamed to `KhanUtil.bound` in math.js

Test Plan:
`./tools/runlint.py khan-exercises` in webapp

see that it passes (mostly for the no undeclared globals step)

Auditors: charlie
Move all answer area content to the bottom of the question area

Summary:
This commit moves the entire #solutionarea div to the bottom of the
question area, unless the question contains an element with the class
name "render-answer-area-here" (in which case the div is placed
immediately after this element).

In addition, this commit removes entirely the old "acceptable formats"
section at the top of the answer area in favor of tooltips attached
directly to individual input elements. This is basically backporting the
approach we've taken in Perseus to khan-exercises. Speaking of which,
this commit also brings the expression editor in khan-exercises more in
line with the Perseus version (rendered output above input) which is a
necessary change because otherwise the tooltip obscures the output.

Test Plan:
Most of these changes were in place during the answer area moving party,
and so in general all exercises should be confirmed to work. Tooltips
were only finished afterwards though, so I've spot-checked the various
answer types myself.

Reviewers: emily

Subscribers: aria

Differential Revision: http://phabricator.khanacademy.org/D14745
Rearrange answer area content within some exercises

See https://docs.google.com/a/khanacademy.org/spreadsheets/d/1wCONrsK1ujRCLal7bcxS0cVkfpfKiPzapt3SsMJ_zqI/edit#gid=0

Color: Pink

Test Plan:
Take all hints and succesfully answer a question within each problem
type for all modified exercises.

Auditors: alex
Rearrange answer area content within some exercises

See https://docs.google.com/a/khanacademy.org/spreadsheets/d/1wCONrsK1ujRCLal7bcxS0cVkfpfKiPzapt3SsMJ_zqI/edit#gid=0

Color: Red

Test Plan:
Take all hints and succesfully answer a question within each problem
type for all modified exercises.

Auditors: alex
Rearrange answer area content within some exercises

See https://docs.google.com/a/khanacademy.org/spreadsheets/d/1wCONrsK1ujRCLal7bcxS0cVkfpfKiPzapt3SsMJ_zqI/edit#gid=0

Color: Blue

Test Plan:
Take all hints and succesfully answer a question within each problem
type for all modified exercises.

Auditors: alex
Rearrange answer area content within some exercises

See https://docs.google.com/a/khanacademy.org/spreadsheets/d/1wCONrsK1ujRCLal7bcxS0cVkfpfKiPzapt3SsMJ_zqI/edit#gid=0

Color: Gray

Test Plan:
Take all hints and succesfully answer a question within each problem
type for all modified exercises.

Auditors: alex
Rearrange answer area content within some exercises

See https://docs.google.com/a/khanacademy.org/spreadsheets/d/1wCONrsK1ujRCLal7bcxS0cVkfpfKiPzapt3SsMJ_zqI/edit#gid=0

Color: Green

Test Plan:
Take all hints and succesfully answer a question within each problem
type for all modified exercises.

Auditors: alex
Rearrange answer area content within some exercises

See https://docs.google.com/a/khanacademy.org/spreadsheets/d/1wCONrsK1ujRCLal7bcxS0cVkfpfKiPzapt3SsMJ_zqI/edit#gid=0

Color: Cyan

Test Plan:
Take all hints and succesfully answer a question within each problem
type for all modified exercises.

Auditors: eater