Start separating out interface code from khan-exercises

TODO: make local mode work again, separate everything else out

Test Plan:
Did problems in addition_1; took hints, lost leaves.
Saw that my perseus exercise doesn't make a failing HTTP request anymore.
Commented out exercise-content.js and saw that when loading a Perseus exercise, the only JS errors were from binding events in exercises.js and user-exercise-cache.js -- those'll be the next things I tackle.
Move other events to Exercises event bus

Test Plan:
Did problems in addition 1, took hints, saw leaves decrease, finished stacks, etc. and everything looked okay. ack "\bKhan\b" javascript/exercises-package/ gives nothing suspicious any more.
Move interface.js to within khan-exercises

(No other changes)

Test Plan:
Loaded Addition 1.
Split out most exercise interface code

There is no scenario in which this is not a bitch to review. Sorry.

TODO: make local mode work again
TODO: get rid of utils/hints.js and merge with exercise-package/interface.js

Test Plan:
Did problems in Addition 1 locally and took hints and saw buttons update and lost leaves.
Make local mode work again and fix a few bugs

Auditors: eater, cbhl
Move hints.js code into interface.js

Test Plan:
Took hints, got acceptable formats.

Auditors: eater, cbhl
Only bind events once in live mode

Test Plan:
Load Addition 1 and see only one copy of the problem.

Auditors: eater, cbhl
Misc changes to make perseus exercises a reality

Auditors: eater, cbhl
Perseus topic mode, khan-exercises MathJax 2 fixes

Auditors: eater, cbhl
Fix show solution button text

Auditors: eater, cbhl
attemptSaved doesn't appear to be used anywhere...

Auditors: eater, cbhl
Don't load perseus packages so we can merge in to stable

Test Plan:
Loaded addition 1.
Merge branch 'perseus'

Conflicts:
	khan-exercise.js