Standardise on 'ECMAScript' as backend name

Minigrace has always targeted ECMA-262, 3rd Edition, and does not use
any of the JavaScript-specific extensions, but the backend was referred
to as "genjs" and "js" repeatedly. This commit standardises all
references on "ECMAScript" and "es" where required.
Add stub genjs backend for API compatibility

Some other code relies on loading and executing modules manually, so we
will temporarily add this forwarding stub with a warning message until
they can be corrected.
Avoid conflicts on names with numbers

Previously, code generation appended an auto-incrementing number
directly on the end of identifier names to make them unique. In rare
cases, that can cause conflicts where the name of an identifier already
ends with a number. This commit inserts an additional "_" in between the
name and number each time.
Remove catch-case support from parser

This syntax is no longer in the language, replaced by try-catch, but was
accepted with a warning for backwards compatibility. Since all uses are
now removed from the compiler, it can now be removed from the parser as
well.
Allow braces around elseif conditions

Minigrace has an 'elseif' extension supporting multi-branch if
statements, which is not in the language and requires special evaluation
semantics. This commit permits writing the conditions of those branches
in braces, meaning their visibile semantics would match the language's.
Update tests to use bracey elseif syntax

There were two test cases for Minigrace's non-standard elseif extension;
this commit updates these cases to use the semantically correct (but
still unspecified) elseif {condition} syntax.
Bump known-good

Now corresponds to 0.0.9.1963.
Replace uses of magic elseif() with braced version

Support for the elseif(condition) extension cannot be removed while uses
remain in the compiler, so this commit replaces all with their braced
equivalent (with no other changes).
Give correct semantics for elseif

elseif will now behave like other control structures with
deferred-evaluation parameters, allowing the sort of meta-conditions
possible with while loops.
Edit outdated documentation

Several of the files in doc/ had been partially obsoleted by events.
Remove or correct these dated parts.
Increment version number

Now 0.1.0.
Correct generation of unique outer function in ES

The uniquifying name changes missed a case used for some "outer"
methods, causing execution to fail. This commit corrects the omission of
an underscore.
Remove last runOnNew instance

A runOnNew call in xmodule was spent and unnecessary, so remove it.
Remove unused methods from lexer

The lexer had two methods isoperatorchar and isidentifierchar that were
obsoleted by Unicode patterns and no longer used anywhere. Removing them
makes the lexer shorter and clearer.