Extracted interface for ValueExceptionStackFrame
Made introspection of stack frames lazy
Created interfaces for ValueArray and ValueObject and friends
Fixed rendering of local and global variables to not delegate to abstract methods of Variable
Changed introspection to create new ValueObject and ValueArray objects every time (safe since it is done lazily)
Extracted interface for ValueExceptionGlobalState
Made more introspection lazy
Extracted interface for ValueResource
Extracted interface for ValueExceptionCodeLocation
Changed JSON parsing to be lazy
Removed some unused classes
Made mock exceptions/values lazy
Removed ValueString
Removed MutableValueException
Removed more unused classes
Moved Value* interfaces into one file
Moved Value* interfaces into their own namespace
Rewrote some code to use array_map
Inlined some miscellaneous functions
Moved introspection classes into their own namespace