'Runners shouldn\'t GC if future is alive'

@gen_test
def test_gc(self):

    weakref_scope = [None]
    def callback():
        gc.collect(2)
        weakref_scope[0]().set_result(123)
    @gen.coroutine
    def tester():
        fut = Future()
        weakref_scope[0] = weakref.ref(fut)
        self.io_loop.add_callback(callback)
        (yield fut)
    (yield gen.with_timeout(datetime.timedelta(seconds=0.2), tester()))
