Fixed issues with nullable primitive types (which must be represented in
their object forms).

Added AddressMap as a central, standard type.  It's designed to map
original pointers to copied objects when doing a copy() operation.
(AddressMap is essentially a HashMap<ulong,ulong>, but it is not
implemented as such since the basic types upon which everything depends
cannot be generics without causing the compiler deep technical
problems.)

Made it so that all objects have a copy() and copy(AddressMap) method
automatically generated.  The copy() method will be called when the copy
or freeze commands are invoked.  The second method will be called on
fields inside the initially copied object to make sure that items are
not being copied multiple times.

Although these methods are currently being generated, they do not
contain anything yet.