Rename class to constructor, add dotted class

In an effort to come back into line with the language design, and given
that the existing 'classes' were not really classes, the 'dotted class'
syntax has been added to the language as sugar for a single-method
object. The old class syntax is now available with the 'constructor'
keyword, and the tests have been updated accordingly.
Move internal error handling into report method

It was possible for a JavaScript error to make it into the error
reporting method in the interpreter. Now one custom use of the internal
error handler has been removed, and the error reporter handles all
internal errors itself.
Strip leading whitespace from the lexer

The dialect and import keywords weren't capable of dealing with leading
whitespace in the input. The parser now removes all whitespace from the
lexer at the start to avoid this issue.
Make boolean literals self-delimiting

Boolean literals no longer require parentheses when they are the only
argument to a method part. The generic request parsing has been updated
to reflect this, and also to avoid generic requests failing in the
return type of a method that has annotations.