Improve reliability of GC related tests

Fixes propertyVarCircular2 in clang release builds for example.

Some of the QML/GC related tests had functions like

   function deassign()
   {
       someVariableThatWasholdingSomethingThatShouldBeCollectedNow = null;
       gc();
   }

which work fine with an exact GC like in v8, but with our conservative
collector they are not that reliable and much more vulnerable to a reference
to the object still being around somewhere. So to improve the reliability
of the test, this patch moves the gc() calls out of the JavaScript function
and back to the C++ caller side (these functions are invoked via QMetaObject::invokeMethod),
where the existing gc() helper function will call the collector and also
process posted deferred deletion events for QObjects.

Change-Id: I8c1f715d56d66bc567ea8bd1575f171460b15ac8
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>