hkl/hkl — pull request #103 by pyrated (2012-11-14 06:13:12+00:00)
Title: Modifies hkl to do just-in-time object creation.

Still kludgy as hell. But no memory leaks on what is fully implemented.

This is how references work now. (Mostly the same as the old way since its so simple)

if I do:

```
a = [1, 2, 3] // A is a reference to the array (Note that 'a' is a reference to the reference to the array)
b = a // B is a reference to the array
puts a // A double dereferences to an array: [1, 2, 3]
puts b // B double dereferences to an array: [1, 2, 3]
a = 12
puts b // B double dereferences to an array: [1, 2, 3]

// The array [1, 2, 3] lives as a HklValue until the absolute moment it needs to be created

a = [1, 2, 3] // Creates 2 objects 'a' and [1, 2, 3]
puts [1, 2, 3] // Creates no objects [1, 2, 3] lives on the 'stack'
```