Add object annotations, retained at runtime

Annotations can now be placed on object constructors with the syntax
'object is ... {} ', and the annotation objects will be stored in the
object's internal structure. They can be retrieved using the mirrors
module and the 'annotations' method.
Add basic ownership dialect

This dialect implements a rudimentary ownership system where the
only owner is the immediately-surrounding object. It demonstrates
the use of the dialect dialect to implement checkers requiring
state to be maintained for expressions.
Fix parser crash in TTIAR suggestion

Previously, when two terms appeared in a row the parser tried to
generate a suggestion using a method that doesn't exist because of a
duplicated method part.