Move object ref+unref handling to GoValue.

This changes the previous commit to RefSink and Unref all GObject
wrapper types if they satisify the IObject interface (implemented by
Object and all types embedding an Object).

When custom marshalers are able to be registered (see #44), this will
mean that marshaling funcs will not be required to (and should be
discouraged from) handling the refcounts themselves.