Catch slowparse errors and spit out generic error

Summary:
We discovered that Slowparse.HTML can throw an error at times
when its parsing strategy doesn't work (like this particular case,
 where an unclosed attribute happens to have an http in it that
 looks like an attribute name and confuses it).
Ultimately we could improve the parser for the cases we found,
but in meantime, we should give the user some sort of error.
Note that we tried the same things on Thimble and saw it just doesn't
spit out any error at all when Slowparse.HTML fails.
This approach seems better!

Test Plan:
- Run output_test in webpage
- Start writing a link in https://www.khanacademy.org/devadmin/content/preview/x93850788/p/challenge-links-you-love,
   see the new error pop up after writing the first quote.

Reviewers: alexrodrigues

Reviewed By: alexrodrigues

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D14502
Use mousedown instead of click so we also catch mouse wheel

Summary:
Reported by a reviewer, they don't see the alert when
mouse-wheel clicking.
According to the internet, mouseup should be triggered by
a mouse-wheel click, so I changed click to mousedown.

Test Plan:
- Put a link in a webpage, click with mouse, see alert
- Middle click with scroll wheel, see alert
  (I couldn't actually get my mouse-with-scroll-wheel hooked up,
   so I will have to check with a reviewer)

Reviewers: brian

Reviewed By: brian

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D14501
Rebuilt output webpage.js
Always process and send back tests - fixes T3361

Summary:
For some reason our HTML test logic differed from our PJS test logic in that
we didn't try calling .test() if there were errors, and we called back
with an empty set for test results.
However, that meant the challenge panels didnt know what tests existed.
I removed that if condition and the challenges seem to work as expected.
I'm not sure if there was a particular reason for the condition that I'm missing.

Test Plan:
- Go in an HTML challenge, make a syntax error, see the Steps remain above,
instead of it going into Completion mode

Reviewers: john, alexrodrigues, brian

Reviewed By: brian

Subscribers: brian, #cs

Differential Revision: http://phabricator.khanacademy.org/D14511
Hooked up remove()

Summary:
We were having problems because tooltips were not being correctly cleaned up when someone called remove() on live-editor. This lead to the selectors used by bootstrap tab targetting the wrong window in image-modal and that lead to display errors. The removes and associated re-initalizing is all because of the backbone router and so this issue only appears when the backbone router has changed pages at least once.
I threaded together the remove calls so that when you call remove() on live-editor remove() is called on all the tooltips.

Test Plan: Added test case in tooltips_test.js

Reviewers: john, pamela

Reviewed By: pamela

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D14510
Rebuild tooltips.js
Fixes T3359 - Tooltips stop receiving updates after talk-through ends

Summary:
When soundManager finished playing it used to just trigger the "playPaused" and "playEnded" events,
         which was enough to update the buttons, but did not actually change state inside record.js
         so record.js still thought it was playing. To fix this I now call the actualy stopPlayback()
         which alters the internal state of record.js

Test Plan:
- Watch talkthrough to the end
- Type "fill(" and see tooltip autocomplete
- Use number scrubber and see values change

Reviewers: john, pamela

Reviewed By: pamela

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D14555
Move some live-editor specific logic out of KA.org.
Stopped animating oh_noes_guy

Summary:
We did this both because we thought oh noes guy was distracting
and because it resolves T3354 with random errors showing up

Test Plan:
- Open a new PJS project
- make a syntax error
- see oh noes guy appear without animation
- Make the error again and try undoing the error right before oh noes guy appears
- despite many attempts never have oh noes guy show up after you have fixed the error

Reviewers: pamela

Reviewed By: pamela

Subscribers: #cs

Maniphest Tasks: T3354

Differential Revision: http://phabricator.khanacademy.org/D14569
Merge branch 'structured-blocks'