Implements # @script pragma and ide.setEditorText.

A second shot at the template idea, but done very differently.

Here is the proposal:

(1) script pragmas.

If the coffeescript file has lines that begin with:

Then we should run the file by adding a <script src="..."> corresponding
to that URL.

I think /turtlebits.js (which includes jquery, underscore,
jquery-turtle, and coffeescript) will always be included first (it
doesn't need to be specified by script), followed by the script-pragma
scripts.

To make it natural to include turtle-based scripts, turtlebits.js
now instantiates the turtle by default.

What if you don't want the turtle?  We provide a script so that

Does a turtle.remove for you.

The advantage of script pragmas over "await loadscript URL, defer()"
(which is what we currently do) are:

(A) it's shorter and easier to type.
(B) Even if the rest of the program has syntax errors, the pragma'ed
script can load and run.
(C) So we can run these scripts even in the case where you aren't ready
to run your program yet.

(2) ide interface

Today, if a script running in-frame reaches out to its parent frame, it
can already get an "ide" object that allows it to highlight lines of
code.

Now the "ide" interface is extended to allow a script to
see its own code, and to also modify it:

window.parent.ide.getEditorText();
window.parent.ide.setEditorText('foo');

That makes it possible to write scripts that display UI that generate
code or that score correctness based on what sort of code was written by
the student.

Of course, when the script isn't framed, the ide isn't present, and
of course, when you modify the text, it doesn't actually change the
running code until the user runs the program again.

(3) Default run should include pragma scripts

Today, when you open up a file without running it, it shows a "blank"
turtle run screen on the right, i.e., it loads turtlebits.js without
inserting your code.  That way you can get help and test turtle commands
right away.

When you load code with script pragmas, it should do the same, but it
should include the <script> tags for the pragmas.  That allows fancy
script-building UI to show right away, before running the program.

(4) Javascript support and /code/

Coffeescript pragmas are less powerful than templates in that it doesn't
let a file run in "javascript mode" or "css" or "html".  But I think
that was a confusing feature.

You can already do that by naming your file ".js" or ".css" or ".html",
and I think we can just continue to treat those as different modes,
selected by changing the filename.

To make Javascript a usable idiom, we should make /home/*.js drop your
javascript into an executable environment just like your coffeescript
is, and we can support //#script pragmas the same way.

(This isn't implemented yet.)

To make it possible to write your own "includable" javascript and
coffeescript, we should introduce a new URL prefix /code/ that just
gives you the raw code without wrapping in HTML.  If you want to include
a script in another script, you use the /code/ URL

(This is included in the new nginx configuration.)
Mime type for /code/ extensionless files.
Fix python bugs.
Fix welcome by moving turtlebits.js into body.
Fix scroll stickiness.
Fix interrupts and devserver.
Autofold and protect leading #@script pragmas.
Improve protection of autofolded pragmas.
Fix multiline autofolding
Fix interation between autofold and changeEditorText
Remove console.log
Merge branch 'master' into pragmascript, and add the ability for
the node.js code to resolve #@script pragmas.

Conflicts:
	dev/devserver.js
Merge pull request #72 from PencilCode/pragmascript

Implements # @script pragma and ide.setEditorText.