* Obj is now a trait instead of a struct
* Value enum is gone, replaced with individual structs that implement
Obj
* All instances where a Value was used, a Gc<(dyn Obj + 'static)> takes
its place. ObjPtr is shorthand for this.
* A __str__ method for objects is implemented for a couple builtin types
as a proof-of-concept
* println and print builtin functions are implemented using this
interface
There's still a lot to do, mostly with interned values. For example,
whenever a new string object is created, a new __str__ function object
is created each time, rather than reusing the first one that was
created. Stuff like that.
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>