also refine the GC-handling of contact and message pointers.
free-ing dc_context pointers currently does not work because
the threads are keeping a reference and not shutting down.
help on this shutdown issue from @r10s or @flub welcome.
I think fixing the context GC/shutdown issue should not hold
up merging this branch.