Adjust signature lookahead to include operators

The lookahead on signatures only tested for identifiers, which prevented
operators from appearing in types. Now the lookahead will test for
either an identifier or an operator. The branching for parsing various
types of signatures has also been tidied up, and a test for an
assignment method has been added.
Standardise method creation names in runtime

The methods 'newMethod' and 'newClass' did not match with the standard
for names set by the rest of the methods in the runtime. They have been
renamed to 'method' and 'constructor'.
Allow inheritance of booleans

The methods that return true and false now have companion inheritance
methods that allow objects to inherit from them.
Add at() and size methods to string

There was no way to retrieve characters or the size of a string without
using the primitive interface. The at() and size methods almost brings
strings in line with the list type sans doForEach(), but this will soon
be moved into the prelude. A hidden bug where a block was returning
undefined instead of done in the list implementation has also been
resolved.
Ensure that when forcing a task fails it cascades

Because the call to 'now' does not pass a direct deferral error to the
given handler, the reject function in the task module was not handling
deferral errors and the resulting tasks never completed.

Some calls to now and a missing value in resolve have been patched too.
Ignore leading hashbang

Using a hashbang to specify how to run Grace code should be valid, so
the loader ignores them if they are present at the start of a file.
Allow newlines before a close parenthesis

The parser wasn't permitting a new line to follow an expression in
parenthesis when dropping back to a previous indentation. Now an indent
in parentheses are just treated as a continutation line, but a newline
is permitted at the end.

The error message "Unexpected use of" has been changed to "Unexpected
appearance of" to reflect the fact that some tokens aren't actually
written by the programmer.
Add pattern interface to literals

Booleans, numbers, and strings now inherit from AbstractPattern and
implement a match() method based on their equality. Equality for numbers
and strings also no longer assume that their argument is of the same
type. The pattern combinators have better asString implementations.

Action's assert() method has been restored to normal, and now it is just
orElse() that isn't asserting.
SQUASH Prelude