Don't rely on gc_collect_cycles()

HHVM doesn't have a working implementation of gc_collect_cycles() so lets break the cycles by hand. It is also nice that this explicitly lays out where the cycle is so you don't accidentally introduce another cycle.