object: properly disassociate wrappers

Now that we allow different JS wrappers during the lifetime of
a single GObject, the code must be extra careful to really
disassociate wrapper and wrapped objects.

The current code, however, was not really disassociating the
wrapper from the GObject it wraps, causing a segfault when
the first wrapper is destroyed and the second is created.
10 jobs for wip/gcampax/679688-make-gc-much-more-aggressive in 24 minutes and 18 seconds (queued for 3 seconds)
Status Job ID Name Coverage
  Source Check
passed #24741
cppcheck

00:01:35

passed #24742
cpplint

00:00:54

passed #24743
eslint

00:00:36

passed #24740
fedora

00:07:12

 
  Test
passed #24744
fedora_clang

00:08:48

 
  Thorough Tests
passed #24746
installed_tests

00:06:51

manual #24749
allowed to fail manual
no_graphics
passed #24745
no_profiler

00:02:11

passed #24747
sanitizer_gcc

00:07:23

manual #24748
allowed to fail manual
valgrind