Improves error message.

Tells the programmer what method was requested on an undefined value.
Adds missing ‘do’ method to GraceList.

Also introduces some local variables for clarity and speed.
Removes duplicate definitions.

isStandardPrelude and ProgrammingError are defined
in the enclosing scope.
Adds a clone method to gracelib.js

The old version incorrectly answered its argument!
This version does not do the right thing on shared or
cyclic structures.
Marks binding occurrences of generics.

Also updates some comments.
Replaces “fresh” property by isFresh variable.

This allows the AST to be simplified.
Major rewrite of identifierresolution.

Also makes  corresponding changes to AST to support
mapping with parent links.

This compiles but is still a work in progress.