Update live-editor to use processing-js padding fix

Test Plan:
- Load scratchpad, make sure bottom line of debug output screen deosn't get cut off.
Fix Program.assertEqual() second run problem, add tests for it

Summary:
The refactor lost a resetting of output.assertions, which this diff brings back.
That ensures that once you've fixed something, the assertions reset.
I also really wanted tests to prevent future regressions, so I've added those.
Unfortunately, PhantomJS seems to turn nested functions into null, so the
tests were failing for a long time until I figured that out.
Those functions are now stubbed out in worker.js instead.
This diff also involves recursive stubbing and un-stubbing of functions.

Test Plan:
- Run the pjs output tests
- Also put this in live editor, see "Sending true" and no errors in CDT
```
Program.runTest(function() {
             if (7 === 7) {
                 println("Sending true");
                 return true;
             } else {
                 println("Sending false");
                 return false;
             }
          });

var x = random(5);

Program.assertEqual(2, 2);

Program.runTest("Checks 2 = 2", function() {
    return 2 === 2;
});

mouseClicked = function() {
    Program.restart();
};
```

Reviewers: john

Reviewed By: john

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D13054
Fix variable name typo

Test Plan:
- Edit challenge, introduce error in tests code, don't see "result undefined" error in console

Auditors: john
Fix infinite loop detection error - fixes T3158

Summary:
This fixes infinite loop detection where width/height are involved,
and adds a test for it.

Test Plan: - Run pjs/output_test.js tests

Reviewers: john

Reviewed By: john

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D13166
No-op window.prototype methods

Summary:
The refactor missed http://phabricator.khanacademy.org/D11241
This brings back the window.constructor no-oping.
We still have the sandbox attributes, as play-page wasn't in live-editor.

Test Plan: - Put this code in a program: https://gist.github.com/pamelafox/279929327eef347f5683 See nothing happen except println()s - no window.opens or alerts

Reviewers: john

Reviewed By: john

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D13168
Add Webpage tests to Live Editor

Summary:
A complex series of changes went into this diff. First most of the test logic had to be moved around as much of it was PJS-specific. Then much of the testing internals were re-formulated so that the main OutputTester could be sub-classed (into PJSTester and WebpageTester, respectively). New testing mechanisms were added for testing the HTML in webpages.

I recommend looking at `webpage-tester.js` and `tests/output/webpage/assert_test.js` for examples of how the Webpage testing is done.

Test Plan: All the tests pass! (For both Webpage and PJS)

Reviewers: pamela, brian

Reviewed By: brian

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D13108
Fix build files.
Adding at scale slides
Merge branch 'master' of github.com:Khan/live-editor
Update gitmodules to use HTTPS URL

Test Plan:
- Push, see if there's no gh-pages error about needing an SSL URL

Auditors: john
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