Rewrite the text line manager and garbage collector.

No longer a hard limit on the number of lines in a file,
or the current collection of files,
or all the files you have seen in your edbrowse session.
Still more work to do regarding malloc failures and integer index overflow.
Squash the size_t warnings in url.c the quick way
We really should switch to size_t for lengths and indices later but this works for now
Merge branch 'master' of https://github.com/CMB/edbrowse
Merge all the good changes being made with the warning squashing
Free lines directly in sql mode, as there is no undo command.

This is a small memory leak.
Bugfixes and cleanup.

* Remove remaining uses of unrooted jsval.
* Make stringize take js::HandleValue.
* Make our_JSEncodeString and transcode_get_js_bytes take
 js::HandleString.
*Remove unneeded casts to JSObject *.
*Clean up domLink, consolidate variables v and rvv.
Detect JS out-of-memory condition and exit.
We already had a message for javaascript memory allocation error.

Any new message we add has to be translated, so if there's already one
available it's probably better to use it.
Forgot to modify jsdom.cpp in last commit.
A more appropriate message.
jspool parameter for memory allocated to javascript.

Set this in .ebrc file, or leave it out and get the default of 32.
Add missing AutoCompartment calls to html.cpp.

I knew I missed some.
Bring this article up to date.

Several links were invalid, and some paragraphs need some revision.
Merge branch 'master' of git://github.com/CMB/edbrowse
Fix id=submit bug, as illustrated by stargpage.com.

The id=submit tag overwrites the form.submit() function.
It's not clear that the id=foo should create form.foo at all,
so for now I comment it out,
with an explanation of why.
We'll see if some other website needs me to create form.foo from id=foo.
I hope it is not some wacky logic like create the link
iff the moon is full.
Make the form id input link unless it is submit or reset or action.
Don't need global variable undoable any more, it's already in struct ebWindow.
Remove AutoCompartment from a few routines.

This patch and the next couple shouldn't change the behavior of edbrowse.
In some functions I can remove the rooted objects altogether,
so that they run fine whether js is active or not.
I use to have shorthand variables like e = topTag->jv.
That is no longer shorthand, because I have to root the variable,
and I also have to set the compartment.
So it is often easier just to refer to topTag->jv.
Then the additional advantage:
the function doesn't blow up if cw->jss is null.
As of this push all functions in html.cpp up to htmlImage
are safe to call whether jss is null or not.
More long-term plans for edbrowse rewrites, and the disclaimer at the top.
Leave the <form> tag straight, not generated by javascript.

I want to be able to test the full form, without javascript,
and that means <form> has to be in plain html,
not generated by javascript.
But subject is still generated by javascript document.writeln(),
so that is still being tested.
Use StartPage as an example of when we have to change the agent.