refptr: Add a free() internal function

This allows to immediately release a referenced pointer, with the
ability to skip the call to the notify function.
static-string: Add destructor to release the interned cache

When the library is unloaded, we should release all the strings we
interned.
refptr: Add more constructors

The default alloc() should not take a clear function: we should provide
an alloc() variant that does that for us.

It'd also be nice to have a dup() function that just takes some const
data and copies it into the newly allocated refcounted memory area, so
that we can simply do something like:

  Rect r = { { 100, 100 }, { 50, 50 } };
  Rect *p = gb_ref_ptr_dup (&r, sizeof (Rect));

and spare us an explicit initialization pass.
docs: Note in the README that this is bonghits code