Added function decorator to handle the "clean"/"running"/"dirty" workflow automatically
Do not lint for blockly

Test Plan:
Open PJS scratchpad, make syntax error, see oh noes
Open blockly scratchpad with profiling. See linting taking no time
Use sped up version of structured

Test Plan:
- Open snowman challenge
- Pass all tests
Re-ordered linting flow so that testing always occurs after injecting the code

This change was made because the webpage tests should occur against the DOM,
and the DOM must built built by injection, so that any scripts which assume document
refers to their document run correctly
WIP

Conflicts:
	build/js/live-editor.output.js
	js/output/shared/output.js
Decouple Testing

Test Plan:
<see below>
Throttle testing

Test Plan:
- Open snowman challenge
- Pass the challenge and observe tests responding
- Run regression tests
- Observere regression tests working
Many scratchpad performance improvements (targetted at iPad)

Summary:
The experience on iPad felt very laggy, so we tried to improve the performance. I made 3 major changes:
- Do not lint for block party (this is fine because block party can never have syntax errors)
- Use sped up version of structured (handles argument matching much faster)
- Decouple and throttle testing (it now tests at most once per 200ms, which leaves more time for display updates)

Test Plan:
- Open PJS scratchpad, make syntax error, see oh noes
- Open blockly scratchpad with profiling. See linting taking no time
- Open snowman challenge
- Pass the challenge and observe tests responding
- Run regression tests
- Observere regression tests working
- Run full liveEditor test suite (WIP, doing now, there are still some bugs there)

Reviewers: john, pamela

Subscribers: #cs

Differential Revision: https://phabricator.khanacademy.org/D14985
Hanging console.log
Needed to stub cleanUp for the tests.