tunable gc growth factor
use global free slot count when making heap allocation/destruction decisions

heap.free_num does not always accurately reflect the number of free
slots available on the heap.
Merge branch 'gc-stats' into github