ZENGINE: Move initialization code from run() and into its own method
ZENGINE: Modify utility and puzzle comments to make them more clear
ZENGINE: Convert union of pointers to union of values except for String.

Instead of storing everything on the heap, only store Strings on the heap.
For Strings, store a char array pointer instead of an actual String object
since String objects are fairly large.
ZENGINE: Add documentation to 'Object' accessors
ZENGINE: Rename 'Object' class to 'SingleValueContainer'
ZENGINE: Rename object.h and object.cpp to fit the new class name