MEDIUM: xref/lua: Use xref for referencing cosocket relation between stream and lua

This relation will ensure that each was informed about death of another one.
diff --git a/doc/internals/lua_socket.fig b/doc/internals/lua_socket.fig
index bed20e3..2ecb0f8 100644
--- a/doc/internals/lua_socket.fig
+++ b/doc/internals/lua_socket.fig
@@ -7,116 +7,107 @@
 Single
 -2
 1200 2
-6 7020 8775 9675 9405
-4 0 0 50 -1 12 12 0.0000 4 165 2400 7020 8910 update_tcp_handler()\001
-4 0 0 50 -1 16 12 0.0000 4 195 2640 7020 9105 Called on each change on the \001
-4 0 0 50 -1 16 12 0.0000 4 195 1830 7020 9345 tcp connection state.\001
--6
-6 7020 9675 10170 10080
-4 0 0 50 -1 12 12 0.0000 4 165 2160 7020 9810 hlua_tcp_release()\001
-4 0 0 50 -1 16 12 0.0000 4 195 3150 7020 10005 Called when the applet is destroyed.\001
--6
-6 765 8730 3195 9450
-4 0 0 50 -1 12 12 0.0000 4 165 1560 765 8910 hlua_tcp_gc()\001
-4 0 0 50 -1 16 12 0.0000 4 195 2430 765 9105 Called just before the object\001
-4 0 0 50 -1 16 12 0.0000 4 195 840 765 9345 garbaging\001
--6
-6 900 3555 2340 4365
+6 1125 2745 2565 3555
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 900 3555 2340 3555 2340 4365 900 4365 900 3555
-4 0 0 50 -1 16 12 0.0000 4 180 1080 990 4005 lua_State *T\001
-4 0 0 50 -1 18 12 0.0000 4 150 990 990 3735 struct hlua\001
-4 0 0 50 -1 16 12 0.0000 4 195 1245 990 4275 stop_list *stop\001
+	 1125 2745 2565 2745 2565 3555 1125 3555 1125 2745
+4 0 0 50 -1 16 12 0.0000 4 180 1080 1215 3195 lua_State *T\001
+4 0 0 50 -1 18 12 0.0000 4 150 990 1215 2925 struct hlua\001
+4 0 0 50 -1 16 12 0.0000 4 195 1245 1215 3465 stop_list *stop\001
 -6
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 60.00 120.00
-	 10530 6750 8910 6570
+6 7560 4365 10620 5265
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+	 7650 4635 10530 4635 10530 5175 7650 5175 7650 4635
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 10440 6390 13320 6390 13320 6930 10440 6930 10440 6390
-2 1 1 4 4 7 50 -1 -1 4.000 0 0 -1 0 0 2
-	 6480 2745 6480 10035
+	 7560 4365 10620 4365 10620 5265 7560 5265 7560 4365
+4 0 0 50 -1 18 12 0.0000 4 195 2565 7740 4815 struct stream_interface si[0]\001
+4 0 0 50 -1 16 12 0.0000 4 195 1725 7740 5085 enum obj_type *end\001
+4 0 0 50 -1 18 12 0.0000 4 150 1215 7650 4545 struct stream\001
+-6
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 0 5310 2520 5310
+	 225 4500 2745 4500
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 0 5850 2520 5850
+	 225 5040 2745 5040
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 0 5580 2520 5580
+	 225 4770 2745 4770
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
 	1 1 1.00 60.00 120.00
-	 6840 7245 4635 5310
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4
-	 6885 7110 6840 7155 6840 7335 6885 7380
+	 1935 5715 7740 6705
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
 	1 1 1.00 60.00 120.00
-	 1575 6525 10350 6210
-2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
-	1 1 1.00 60.00 120.00
-	 2295 4230 3375 4905
+	 2520 3420 3600 4095
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 0 5040 2520 5040 2520 7830 0 7830 0 5040
+	 225 4230 2745 4230 2745 7020 225 7020 225 4230
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 0 7110 2520 7110
+	 225 6300 2745 6300
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
-	 0 7470 2520 7470
+	 225 6660 2745 6660
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 90 6120 2430 6120 2430 6975 90 6975 90 6120
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3375 4815 5850 4815 5850 5310 3375 5310 3375 4815
-2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 6705 6480 8910 6480 8910 8010 6705 8010 6705 6480
+	 1035 2205 2655 2205 2655 3645 1035 3645 1035 2205
+2 1 1 4 4 7 500 -1 -1 4.000 0 0 -1 0 0 2
+	 4860 1935 4860 9225
 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
 	1 1 1.00 60.00 120.00
-	 6840 7605 2430 6840
+	 7695 6435 5760 4410
+2 2 0 1 0 7 50 -1 20 0.000 0 0 -1 0 0 5
+	 3600 3915 6075 3915 6075 4410 3600 4410 3600 3915
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 9450 5040 9225 5670
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 4
+	 7740 6300 7695 6345 7695 6525 7740 6570
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 810 3015 2430 3015 2430 4455 810 4455 810 3015
+	 7560 5670 9765 5670 9765 7200 7560 7200 7560 5670
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 6795 6750 8820 6750 8820 7920 6795 7920 6795 6750
+	 7650 5940 9675 5940 9675 7110 7650 7110 7650 5940
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 3060 630 4500 630 4500 1440 3060 1440 3060 630
+	 315 5310 2655 5310 2655 6165 315 6165 315 5310
+2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 7830 6840 2565 5580
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 2970 90 4635 90 4635 1575 2970 1575 2970 90
+	 7740 6705 9540 6705 9540 6930 7740 6930 7740 6705
 2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-	 10350 6120 13410 6120 13410 7020 10350 7020 10350 6120
-3 0 1 1 13 7 50 -1 -1 1.000 0 1 0 2
-	5 1 1.00 60.00 120.00
-	 6885 8010 6885 8910
-	 0.000 0.000
-3 0 1 1 13 7 50 -1 -1 1.000 0 1 0 3
-	5 1 1.00 60.00 120.00
-	 6750 8010 6750 9675 6885 9810
-	 0.000 1.000 0.000
+	 405 5580 2565 5580 2565 5805 405 5805 405 5580
 3 0 0 1 0 7 50 -1 -1 0.000 0 1 0 5
 	1 1 1.00 60.00 120.00
-	 990 3915 540 4140 495 4365 540 4725 585 5040
+	 1215 3105 765 3330 720 3555 765 3915 810 4230
 	 0.000 1.000 1.000 1.000 0.000
 3 0 1 1 13 7 50 -1 -1 1.000 0 1 0 3
 	5 1 1.00 60.00 120.00
+	 675 7020 675 7785 900 8104
+	 0.000 1.000 0.000
+3 0 1 1 13 7 50 -1 -1 1.000 0 1 0 2
+	5 1 1.00 60.00 120.00
+	 7740 7200 7740 8100
+	 0.000 0.000
+3 0 1 1 13 7 50 -1 -1 1.000 0 1 0 3
+	5 1 1.00 60.00 120.00
-	 450 7830 450 8595 675 8914
+	 7605 7200 7605 8865 7740 9000
 	 0.000 1.000 0.000
-4 0 0 50 -1 18 12 0.0000 4 195 2565 10530 6570 struct stream_interface si[0]\001
-4 0 0 50 -1 16 12 0.0000 4 195 1725 10530 6840 enum obj_type *end\001
-4 0 0 50 -1 18 12 0.0000 4 150 885 90 5220 stack Lua\001
-4 0 0 50 -1 16 12 0.0000 4 195 1140 90 5490 stack entry 0\001
-4 0 0 50 -1 16 12 0.0000 4 195 1140 90 5760 stack entry 1\001
-4 0 0 50 -1 16 12 0.0000 4 195 1140 90 6030 stack entry 2\001
-4 0 0 50 -1 18 12 0.0000 4 195 1200 6795 6660 struct appctx\001
-4 0 0 50 -1 18 12 0.0000 4 195 1695 180 6300 struct hlua_socket\001
-4 0 0 50 -1 16 12 0.0000 4 150 1470 180 6570 struct session *s\001
-4 0 0 50 -1 16 12 0.0000 4 195 1140 90 7380 stack entry 3\001
-4 0 0 50 -1 16 12 0.0000 4 195 1140 90 7740 stack entry 4\001
-4 1 12 50 -1 12 9 5.6723 4 135 540 2925 4545 (list)\001
-4 0 0 50 -1 18 12 0.0000 4 195 2205 3465 4995 struct hlua_socket_com\001
-4 1 12 50 -1 12 9 5.5851 4 135 540 5265 5760 (list)\001
-4 0 0 50 -1 18 12 0.0000 4 150 1305 900 3240 struct session\001
-4 0 0 50 -1 16 12 0.0000 4 150 1440 900 3465 struct task *task\001
-4 0 0 50 -1 16 12 0.0000 4 150 1440 3465 5220 struct task *task\001
-4 0 0 50 -1 18 12 0.0000 4 150 1110 6885 6930 struct <lua>\001
-4 0 0 50 -1 16 12 0.0000 4 195 1620 6885 7425 struct hlua_tcp *wr\001
-4 0 0 50 -1 16 12 0.0000 4 195 1590 6885 7200 struct hlua_tcp *rd\001
-4 0 0 50 -1 16 12 0.0000 4 180 1845 6885 7650 struct hlua_socket *s\001
-4 0 0 50 -1 18 12 0.0000 4 195 1470 3060 270 struct hlua_task\001
-4 0 0 50 -1 16 12 0.0000 4 150 1440 3060 540 struct task *task\001
-4 0 0 50 -1 16 12 0.0000 4 180 1080 3150 1080 lua_State *T\001
-4 0 0 50 -1 18 12 0.0000 4 150 990 3150 810 struct hlua\001
-4 0 0 50 -1 16 12 0.0000 4 195 1245 3150 1350 stop_list *stop\001
-4 0 0 50 -1 18 12 0.0000 4 150 1305 10440 6300 struct session\001
+4 0 0 50 -1 18 12 0.0000 4 150 885 315 4410 stack Lua\001
+4 0 0 50 -1 16 12 0.0000 4 195 1140 315 4680 stack entry 0\001
+4 0 0 50 -1 16 12 0.0000 4 195 1140 315 4950 stack entry 1\001
+4 0 0 50 -1 16 12 0.0000 4 195 1140 315 5220 stack entry 2\001
+4 0 0 50 -1 18 12 0.0000 4 195 1695 405 5490 struct hlua_socket\001
+4 0 0 50 -1 16 12 0.0000 4 195 1140 315 6570 stack entry 3\001
+4 0 0 50 -1 16 12 0.0000 4 195 1140 315 6930 stack entry 4\001
+4 1 12 50 -1 12 9 5.6723 4 135 540 3150 3735 (list)\001
+4 0 0 50 -1 18 12 0.0000 4 150 1305 1125 2430 struct session\001
+4 0 0 50 -1 16 12 0.0000 4 150 1440 1125 2655 struct task *task\001
+4 0 0 50 -1 12 12 0.0000 4 165 1560 990 8100 hlua_tcp_gc()\001
+4 0 0 50 -1 16 12 0.0000 4 195 2430 990 8295 Called just before the object\001
+4 0 0 50 -1 16 12 0.0000 4 195 840 990 8535 garbaging\001
+4 1 12 50 -1 12 9 5.5327 4 135 540 6390 4905 (list)\001
+4 0 0 50 -1 18 12 0.0000 4 195 2205 3690 4095 struct hlua_socket_com\001
+4 0 0 50 -1 16 12 0.0000 4 150 1440 3690 4320 struct task *task\001
+4 0 0 50 -1 18 12 0.0000 4 195 1200 7650 5850 struct appctx\001
+4 0 0 50 -1 18 12 0.0000 4 150 1110 7740 6120 struct <lua>\001
+4 0 0 50 -1 16 12 0.0000 4 195 1620 7740 6615 struct hlua_tcp *wr\001
+4 0 0 50 -1 16 12 0.0000 4 195 1590 7740 6390 struct hlua_tcp *rd\001
+4 0 0 50 -1 12 12 0.0000 4 165 2160 7875 9000 hlua_tcp_release()\001
+4 0 0 50 -1 16 12 0.0000 4 195 3150 7875 9195 Called when the applet is destroyed.\001
+4 0 0 50 -1 12 12 0.0000 4 165 2400 7875 8100 update_tcp_handler()\001
+4 0 0 50 -1 16 12 0.0000 4 195 2640 7875 8295 Called on each change on the \001
+4 0 0 50 -1 16 12 0.0000 4 195 1830 7875 8535 tcp connection state.\001
+4 0 0 50 -1 16 12 0.0000 4 150 1350 495 5760 struct xref *xref\001
+4 0 0 50 -1 16 12 0.0000 4 150 1350 7830 6885 struct xref *xref\001