Support for super and correct method overrides

The interpreter can now handle requests on super, for the surrounding
method only. The method must override another method defined in a super
object. A bug where super-methods were overriding sub-methods has been
resolved as part of this change.

The parser has been modified to accomodate super and inherits, with the
previous functionality of the 'request' parse split into an
'unqualifiedRequest' expression parser and a specialised request parse
in the 'inherits' parser. 'self' is now considered a keyword, but will
appear as an identifier in a request as it did before.

There are minor whitespace changes in the runtime.
Tidy up post-expression parsing

The post expression parsing was large and dealt with a number of cases
at once. The dot request parsing, operator parsing and assignment have
all been split off into their own parse functions. Operator parsing no
longer parses everything to the right and then rewrites based on
precedence, but parses each part at a time and builds the AST in the
right order the first time. The assignment symbol is no longer
considered an operator, and has a special parse case when parsing part
of a request.
SQUASH Import