libuv: fix pt derivation from ptpr in callbacks

The per-pt priv for event libs ended up overallocated at the context,
and pointed-to by a single pointer composed into each pt.  That means
we can't do pointer arithmetic on it any more.

Update a couple of stragglers in libuv event lib to use a pointer in
the pt-priv for the event lib back to the pt instead.

Also in foreign case if we start idle, there may not be anything
happening to trigger the initial idle.  So let each pt start with
its idle active.
diff --git a/lib/event-libs/libuv/libuv.c b/lib/event-libs/libuv/libuv.c
index e28cdb0..e9184c7 100644
--- a/lib/event-libs/libuv/libuv.c
+++ b/lib/event-libs/libuv/libuv.c
@@ -37,8 +37,7 @@
 {
 	struct lws_pt_eventlibs_libuv *ptpr = lws_container_of(timer,
 				struct lws_pt_eventlibs_libuv, sultimer);
-	struct lws_context_per_thread *pt = lws_container_of(ptpr,
-				struct lws_context_per_thread, evlib_pt);
+	struct lws_context_per_thread *pt = ptpr->pt;
 	lws_usec_t us;
 
 	lws_pt_lock(pt, __func__);
@@ -58,8 +57,7 @@
 )
 {	struct lws_pt_eventlibs_libuv *ptpr = lws_container_of(handle,
 		struct lws_pt_eventlibs_libuv, idle);
-	struct lws_context_per_thread *pt = lws_container_of(ptpr,
-		struct lws_context_per_thread, evlib_pt);
+	struct lws_context_per_thread *pt = ptpr->pt;
 	lws_usec_t us;
 
 	lws_service_do_ripe_rxflow(pt);
@@ -637,6 +635,8 @@
 	int status = 0, n, ns, first = 1;
 	uv_loop_t *loop = (uv_loop_t *)_loop;
 
+	ptpriv->pt = pt;
+
 	if (!ptpriv->io_loop) {
 		if (!loop) {
 			loop = lws_malloc(sizeof(*loop), "libuv loop");
@@ -659,7 +659,7 @@
 		ptpriv->io_loop = loop;
 		uv_idle_init(loop, &ptpriv->idle);
 		LWS_UV_REFCOUNT_STATIC_HANDLE_NEW(&ptpriv->idle, context);
-
+		uv_idle_start(&ptpriv->idle, lws_uv_idle);
 
 		ns = LWS_ARRAY_SIZE(sigs);
 		if (lws_check_opt(context->options,
diff --git a/lib/event-libs/libuv/private-lib-event-libs-libuv.h b/lib/event-libs/libuv/private-lib-event-libs-libuv.h
index bb6be86..5c84fcf 100644
--- a/lib/event-libs/libuv/private-lib-event-libs-libuv.h
+++ b/lib/event-libs/libuv/private-lib-event-libs-libuv.h
@@ -53,6 +53,7 @@
 
 struct lws_pt_eventlibs_libuv {
 	uv_loop_t *io_loop;
+	struct lws_context_per_thread *pt;
 	uv_signal_t signals[8];
 	uv_timer_t sultimer;
 	uv_idle_t idle;