Move runner to dynamix render and add build script.
Allow all origins in runner & live.

This is a precursor to possibly allowing the runner to be distributed as a
standalone without JS Bin's chrome.
Prevent infinite loops in jsbin editor.

This is done by rewriting loop code with a test to see how many times the test has been called.

In general, JS is going to run pretty quick, so an infinite loop can rack up 100,000 iterations pretty quickly. If we hit that limit, we break out of the loop and console.error (note: I'd like to echo this back to the user in the UI somehow - probably the linter notice).

This way the code continues, it's a little slow, but it *doesn't* crash the browser.
Remove all but active iframe on runner. Fixes #687

The old code was expecting a single irame to exist. Because it was only listening to the window.onload, we could render many times but only a single load event would fire. So code changed to search for all iframes, and remove all from the DOM except for 'sandbox.active'.
break runner up in to modules so they can be tested, and fixed loop detect to reset on beginning of loop
Fix attaching runnerWindow in firefox.
Fix spelling.
Use 100ms timeout on infinite loop protection, and don't mess with HTML or CSS.
Reset the loop counters before every render.
Fixed #710. Added new tests to get rewrite to pass
rewrote the loop detect logic to walk characters to parse JavaScript properly and defend against loops
Fixed line number for loop detect
Fixes #715

Walks characters forward counting open brackets so the code doesn't accidentally insert *inside* the for loop. Added test too.
Rewrote more of loop protection to carefully walk new lines

This ensures we catch multi-line loop conditions, and fixes #725.
Fix #736. Prepend closing harness with html comment.

This hides the harness from any open comments in the user code (note that this doesn't protect against the insanity that is <plaintext> - http://jsbin.com/ebazek/1/edit !)
Debug flag for loop testing feedback
Fixed #740. Append anything after opening brace.
ensure loop protection does not inject on multiline comments
Fixed #714. Strings were being double escaped.

It was being "cleansed" again here: https://github.com/remy/jsbin/blob/master/public/js/render/console.js#L109
Fix #753. Capture runner.win.onerror and echo

Had to create proxyConsole._raw to allow for messages to *only* appear in the jsbin console, this is because I needed to show errors but not prevent the native error from throwing. The reason is: native errors have correct line numbers. If I had prevented the native error, the console.error in the native console would point to where I logged, not at the source of the error.

In addition, if I simply use console.error, the native console would show my manual call to console.error AND it would throw the native error, so the error appears twice on the native console - which looked weird.

The upshot is now the line numbers (in Chrome...though now I check Firefox, of course the numbers don't match at all) match up to the jsbin line number (because Chrome runs the script in it's own VM...or something, which matches the concept of splitting out the JS in jsbin). I think we may have to either remove the line numbers entirely or do a lot more work to get this accurate.