Reimplemented make_closure().
Added function need_gc() so we don't need to call gc() to determine if
we need garbage collection.