Added comments to shape tree source.
Added general ValueType notion to Values, and added nullable or not-nullable qualifiers to HeapThingValue subtype.
Changed ShapedHeapThing to use NullableHeapThingValue for the shape field.
Changed shapes to have varying sizes based on configuration.  Changed HeapThingValue to auto-cast to the appropriate pointer type.
Added arrow operator to HeapThingValue types.  Cleaned up shape tree usage of HeapThingValue types.  Added explicit element method to get elements out of Tuples.
Added object implementation.
Object values can point to things that are not just VM::Object.