Fixed HugeArray to create direct references when free list is empty

HugeArrayImpl was creating heap objects and then casting to direct objects.
This made it impossible to have more than one outstanding reference to the array at a time.

Basically, you couldn't call:
array.get(0);
array.get(10);

that would crash on the 10 due to casting Heap objects to Direct objects.