Make Socket.t = Context.t * <zmq_socket> to prevent preliminary GC

Without keeping a reference to the context, the GC will attempt to
finalize the context too early, hanging the GC in the finalization
routine.