Fix parseFloat, parseInt, in our stubs file, by defining Char

Summary:
ProcessingJS apparently has its own parseInt and parseFloat,
and they define on a Char object that we never defined

Test Plan:
- Run output_test
- Put this line in a program, don't see Char is not defined:
  ```var cardToFind = parseInt(Program.settings().cardToFind, 10) || 13;```

Reviewers: john

Reviewed By: john

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D13193
A few live editor tweaks

Summary:
- Adjusts gutter tooltip CSS

Test Plan: - Run tests

Reviewers: john

Subscribers: #cs

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

Conflicts:
	build/js/live-editor.output_pjs.js
	build/workers/pjs/output-tester.js
	build/workers/pjs/test-worker.js
	js/workers/pjs/output-tester.js
	js/workers/pjs/test-worker.js
Add a utility for converting Live Editor audio to a new format.

Summary:
This adds in the `audio_convert.html` utility for converting audio recordings to a new format (in this case, one based around the insertText/removeText commands in Ace).

Additionally a change was made to LiveEditor such that it would clean up after itself upon removal (more work still needs to be done, namely we need to remove tooltips, as well).

Test Plan: Run the utility, make sure it outputs usable JSON! (Let's hope!)

Reviewers: brian, pamela

Reviewed By: pamela

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D13257
Fix autosuggest data for r-g-b functions and add alpha param

Usually the color picker comes up for these rgb functions, but you can get the autosuggest data by using a variable.

```
var i = 0;
stroke(i, ...
```

I also fixed the documentation scratchpads on the main site to specify the optional alpha argument for the ones that were missing it.

Test Plan:
- Test each of the modified functions and make sure the correct autosuggest data comes up.
- Make sure clicking on the function takes you to the correct docs scratchpad.

Auditors: pamela
Add babyhint and autosuggest info for alpha on backgrounds

Also updated the doc scratchpad on KA.

Test Plan:
- Make sure background call still works with 3 params.
- Make sure no error buddy comes up for 4 params.

Auditors: pamela
Make sure that mouse events are deleted

Summary:
Fixes T2723.

We had a test for checking if mouse events were deleted before,
but that test wasn't quite checking that, because it was calling
the relevant mouse function itself, and doing so meant the code
went down a different path where the mouse function would get replaced.
So we needed a test that would simulate what the user actually experiences,
where they delete the function and don't call it themselves, but instead
use their mouse to interact with the canvas.
I tried many things, but in the end, I think this is the best approach-
it actually simulates a click event on the canvas between tests.

For the actual fix, I changed a line that was only checking for 'draw'
to check for all the loop-inducing methods instead.

Test Plan:
- Run output_test.js

- Make a program like this:

```
var mouseMoved = function() {
    rect(mouseX, mouseY, 10, 10);
};
```
Move mouse and see the boxes appear.
Change program to this:
```
var xmouseMoved2 = function() {
    rect(mouseX, mouseY, 10, 10);
};
```
Move mouse, and still see the boxes appear.
Remove code, boxes sitll appear.

Reviewers: john

Reviewed By: john

Subscribers: #cs

Maniphest Tasks: T2723

Differential Revision: http://phabricator.khanacademy.org/D13336
Make error buddy 90% opaque, not 100%

Summary:
Students were frustrated that they couldn't see what they were drawing
when the error buddy came up. This improves that by making him 90% opaque
instead of 100.

Test Plan:
- Write code:
 ```
background(255, 255, 255);
fill(255, 0, 0);
rect(10, 10, 200, 200);
```
- Then remove comma between params
- See error buddy
- You should still be able to see rect underneath

Reviewers: john

Reviewed By: john

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D13351
Hard-code fix for the one malformed talkie.
Merge branch 'master' of github.com:Khan/live-editor
Fixes T3183 - Disable tags

Summary:
This disables tags that users would have to bring in third party sources for.
In future we can re-enable with some careful CSP.
I added a disableTags option to slowparse so its easy to customize.

Test Plan:
- Run output_test
- Put <video></video> in webpage, see error

Reviewers: john

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D13423
Fix val typo

Test Plan:
- I will add a test for this, now that I know what it breaks. Le sigh.

Auditors: john
CSS Challenges

Summary:
Includes CSS matching code, wildcard/callback code and a test suite.
This is just the first draft, will improve the available built-in functions
in response to Pamela's needs.

Test Plan:
Run test suite
Try in browser

Reviewers: pamela, john

Reviewed By: john

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D13378
Add test for dynamic object injection

Test Plan:
- Run new test in output_test.js

Auditors: john
Completely ignore the dreaded tutorial #836683206.
Fix code injection of fancy objects and PImages

Summary:
This fixes the stubbing code for 2 new test cases-
an object with a PImage inside it, and a not-plain-object inside an object.

Test Plan: - Run output_test.js with 2 new test cases

Reviewers: john

Reviewed By: john

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D13473
Make oh noes guy go away while typing

Test Plan: Check that oh noes guy appears and dissappears properly in the browser

Reviewers: pamela, john

Reviewed By: john

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D13430
Pamela decided she didn't want any machine generated error messages in CSS/HTML challenges

Summary: So i removed them

Test Plan: reload and check for syntax errors (this should be fairly harmless)

Reviewers: pamela, john

Reviewed By: john

Maniphest Tasks: T3222

Differential Revision: http://phabricator.khanacademy.org/D13512
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
Switch to using the operation tracker proposed by @alexrodrigues.
Fix isseus with applyDeltas improvement.