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.