Fix spec for Socket finalizers
Fix spec for Context finalizer and fix corresponding behavior
Fix more problems with finalizers.

The new scheme:
All new Sockets register their FFI pointers within their Context.
On finalize or on #close each Socket closes and unregisters the pointer from the Context.
On #terminate, the Context terminates itself, hanging if there are still sockets open.
On finalize, the Context closes all remaining referenced socket pointers and then terminates itself, never hanging.

--HG--
extra : amend_source : 055adfdce9614c7e5d4f96377e1f15dfab93a8fd