object: Queue a forced GC when toggling down

During a GC, the collector asks each object which other
objects that it wants to hold on to so if there's an entire
section of the heap graph that's not connected to anything
else, and not reachable from the root set, then it can be
trashed all at once.

GObjects, however, don't work like that, there's only a
reference count but no notion of who owns the reference so,
a JS object that's proxying a GObject is unconditionally held
alive as long as the GObject has >1 references.

Since we cannot know how many more wrapped GObjects are going
be marked for garbage collection after the owner is destroyed,
always queue a garbage collection when a toggle reference goes
down.

Issue: #140
11 jobs for gbsneto/aggressive-gc in 34 minutes and 12 seconds (queued for 18 seconds)
Status Job ID Name Coverage
  Source Check
passed #25131
cppcheck

00:01:55

passed #25132
cpplint

00:01:18

passed #25133
eslint

00:01:07

passed #25130
fedora

00:03:12

 
  Test
passed #25134
fedora_clang

00:04:58

 
  Thorough Tests
passed #25137
coverage

00:24:15

67.7%
passed #25136
installed_tests

00:06:51

manual #25140
allowed to fail manual
no_graphics
passed #25135
no_profiler

00:02:12

passed #25138
sanitizer_gcc

00:10:51

manual #25139
allowed to fail manual
valgrind