Hook for VM code to force writing a constant property.

A property registered with

    vm->getPropertyRegistry().registerConstantProp(...);

can now be modified by C++ code using

    vm->getPropertyRegistry().put(..., /* forceWriteConstantProp = */ true);
Added a property 'gc.watcher' bound to unit at every GC.

{Property.get 'gc.watcher'} returns a read-only variable
that will be bound to unit after the next GC.

This provides a very simple means to execute code after
the next GC, e.g., using this procedure definition:

    proc {AfterNextGC P}
       thread
          {Wait {Property.get 'gc.watcher'}}
          {P}
       end
    end
Added a WeakReference data type.

The builtin module WeakReference provides three builtins
to work with weak references.

{WeakReference.new X ?WR} creates a new weak ref for X
{WeakReference.is V ?B} tests whether V is a weak ref
{WeakReference.get WR ?Y} deferences the weak ref WR.

During garbage collection, alive weak references do not
keep their underlying value alive. If the value is still
alive through strong references, then the reference is
updated. If the value is reachable only through weak
references, it is dead, garbage collected, and weak
references pointing to it are invalidated.

{WeakReference.get WR ?Y} returns some(X) if the value
is still alive, and none if it has been garbage collected.
Implemented System.postmortem.

It derives straightforwardly from WeakReferences and
the 'gc.watcher' property.
Fixes #45: WeakDictionary is missing.

This commit implements WeakDictionary. As was agreed
months ago with P. Van Roy, this implementation has
post-mortem semantics, whereas Mozart 1 had pre-mortem
semantics for WeakDictionaries.

This means that instead of sending Key#Value to the
stream when Value is about to become dead, we send
Key#unit to the stream when Value is dead.
Merge pull request #59 from sjrd/issue/fix-45-weak-dictionary

Fixes #45 with WeakDictionary (and Finalize.postmortem)

checks out but I need to submit the test suite now that the sub-modules are merged.