Heap Fixes

Objects are properly reference counted and can be returned and passed
around. Strings however, haven't yet been made Objects but are still
treated as base objects which mess up garbage collection still.