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.
Add object annotations to JS backend

Object annotations and reflection are now available in JavaScript.
This commit also tidies up leaky variables in the other Mirror methods.
Remove disused -X options

Several -X options were implemented once but have been unmaintained
since and either no longer function or require additional work for
nearby changes. This commit removes all except those used by the
compiler, for development, and by Grace-CUDA.
Add gracepm package manager

gracepm retrieves and installs modules from the network to locations
where Minigrace will find them.
Merge remote-tracking branch 'upstream/master'