Reduce the number of times that test workers are created

Summary:
We were creating test workers every time we edited code
in the validation tests tab, despite the fact that there
are syntax errors much of the time. This changes it so we don't
attempt to go into that worker logic if there are syntax errors
in the test code.

Test Plan:
- Edit a challenge, go to validation tests tab
- Write tests for a few minutes, don't see it crash (and don't see lots of test-worker NET requests happen)

Reviewers: brian

Reviewed By: brian

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D12398
Add code auto-suggest, parameter info, and live documentation

Fixes T2935;

Test Plan:
- Test parameter info comes up
- Test hover over parameters works
- Test autosuggest comes up when typing function names
- Test the right documentation comes up for the right function call
- Make sure number scrubber still works
- Make sure background color picker still works

Auditors:
john
Disable local completer for now

The local completer has some known issues like if you do things like:
this.x-3, it will think `this.x-3` is an identifier.

I fixed most of those inconsistencies with the local completer by wrapping it, but I'd rather ship it without any known issues like that.
Most of the value in the autosuggest is in the live documentaton.  I'd rather enable the local completer once I re-write it using the abstract syntax tree.

Test Plan:
- Test that autosuggest works.
- Test that no autosuggest happens for locally defined things.

Auditors: john
Fill in missing live p5js documentation

When I got rid of the local completer the bug with the prefix functions went away.
That means I could re-enable all documentatio now.

Also fixed a non critical js error that would cause the autosuggest to not close when clicked.

Test Plan:
- Try out the new live documentaiton and made sure it autosuggested properly.
- Try clicking autosuggest parameter info and make sure it goes away.

Auditors: john
Don't focus editor when autosuggest pops up

If someone does a find in page for line( then it will steal focus away from the find box.

Test Plan:
- Make sure autosuggest and param info still works by keeping the focus in the editor.
- Make sure when you do af ind in page and type line( matching some text, and parameter info comes up, that the focus stays in the find box.

Auditors: john
Remove p5js from autosuggestion types

The KA website still says ProcessingJS everywehre, so to avoid confusion, it's best to leave off p5js completely for now.
Also fixed a typo in one of the curve functions.

Test Plan:
- Test to make sure the autosuggest no longer says p5js

Auditors: pamela
Fixed problem with talkie due to regex check in hotnumber

There was a regex change added here:
https://github.com/Khan/live-editor/commit/c75dced73d621f23272321fc39f7cbf28028c6b6#diff-ab911d7a1d7cf17b850e511c16b1a796L657

So that it only entered that condition when there was a number.
This changes it so that it goes back to the normal else { ... } condition without doing an additional test there.
The code for the autosuggest is inside that else and only used if the condition here:
https://github.com/Khan/live-editor/commit/c75dced73d621f23272321fc39f7cbf28028c6b6#diff-ab911d7a1d7cf17b850e511c16b1a796L660
is not hit.

Test Plan:
- Play ohttp://stable.ka.local/computing/cs/programming/variables/p/variable-expressions around -5:40 and make sure faceSize doesn't show up messed up.
Make the demo more approachable

added a header, some margin around the edges, and a default bit of code.
Merge pull request #172 from jaredly/master

Make the demo more approachable
Don't show any of the hotnumber scrubbers if within a string or comment

Summary:
I don't *think* this will cause problems with talkies because the change only comes into effect if you're inside a line that starts with / or * or within a string.
I think we'd avoid those things as to not show the pickers in talkies because it's a bug.

Fixes T3036.

Test Plan:
- Try to get autosuggestion, param info, color picker or number scrubber within comments and strings, should not work.
- Try to get the same outside of comments and strings, it should still work.

Reviewers: john, pamela

Reviewed By: pamela

Maniphest Tasks: T3036

Differential Revision: http://phabricator.khanacademy.org/D12502
Adding assertions and markers to live editor

Summary:
This changes assertions so that they don't pop up an Oh Noes,
but instead display a gutter indicator which displays the message upon click.
The tricky part of this is getting the line # of the code that caused
the particular assertEqual.
The current strategy is to use TraceKit, which gets stack traces across browsers
and attempts to somewhat normalize them, and then I fetch the line number
of the first eval-like call from the stack, and subtract browser-dependent numbers of lines.
I had to modify TraceKit to get it working for evals in Chrome, however,
and I'm not sure if TraceKit is actively accepting PRs, their last activity was a year ago,
so we'd likely need to host our own fork.
I can alternatively override Error.prepareStackTrace in Chrome to get back
more structured info, just in Chrome (V8). Here's how that'd work:
https://gist.github.com/pamelafox/c49504d8a0337cbf2f72

Test Plan:
- Create a program with the following:
```var x = 4;

Program.assertEqual(x, 2);

Program.assertEqual(1, 5);
```
- Notice how you can get the tests to pass by changing the values.
- Mouse over the gutters to see assertion messages.
- Write assertEqual in a program, open in Safari, see message on line 0

Reviewers: alpert, brian

Reviewed By: brian

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D12414
Add textAlign with 1 or 2 args and add 1 or 2 args to color in functionParamCount.
textAlign may be used with one or two arguments : http://processingjs.org/reference/textAlign_/
color() may be used with 1 to 4 arguments : http://processingjs.org/reference/color_/
Merge pull request #174 from jentron/master

Add textAlign with 1 or 2 args and add 1 or 2 args to color in functionP...
Reversed actual and expected
Disable error about spaces/tabs

Summary:
The spaces/tabs error gets pretty annoying,
especially when we don't visualize the difference.
This disables that (relaxes the rule).
Should I make a new config for it?
I think it'd be backwards compatible just fine,
since its a relaxer, but one never know.

Test Plan: - Mix tabs and spaces in a program, don't see error

Reviewers: john

Reviewed By: john

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D12364
Fix merge with master.