Re-write Ace Recording/Playback Logic. Create Playback test suite.

Summary:
This diff has two parts:

1) It includes a rewrite of the Ace recording/playback logic to use Ace's insertText/insertLines/removeText/removeLines actions instead of the keyboard-centric tricks that we were using before. Additionally all hotnumber-related events are now removed.

2) A test suite that goes through all of the recording data generated by `utils/audio_convert.html` and tests every talkie that we have currently on Khan Academy. This was done by takes a snapshot of the code every 30 seconds. In the tests we see to those positions and confirm that the code at those times exactly match the expected output.

I'm not going to land this until I do a follow-up diff in which I make some changes to the Scratchpad model on the KA site. I need to upload all of this new recording data and replace the old data. Then I can flip this live.

Test Plan:
Run: `gulp test_record`. All the tests should pass. The current output is: "passes: 477 failures: 0 duration: 263.59s"

Right now the tests aren't run by default (you can run them manually) as they take a while to run. Hopefully I'll be able to make some perf improvements to seeking/playback - and when I do we can enable them by default!

Reviewers: brian, pamela, alexrodrigues

Reviewed By: pamela, alexrodrigues

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D13297