add struct gtp_tunnel and adapt functions to use it

This patch adds a gtp_tunnel structure to avoid having to deal with
functions with lots of parameters. This should also help to extend
the interfaces and the gtp_tunnel object without breaking the binary
interface (which will be good by when ipv6 support will be added).
diff --git a/src/libgtpnl.map b/src/libgtpnl.map
index ead02e0..b38785c 100644
--- a/src/libgtpnl.map
+++ b/src/libgtpnl.map
@@ -9,5 +9,18 @@
   gtp_del_tunnel;
   gtp_list_tunnel;
 
+  gtp_tunnel_alloc;
+  gtp_tunnel_free;
+  gtp_tunnel_set_ifidx;
+  gtp_tunnel_set_ms_ip4;
+  gtp_tunnel_set_sgsn_ip4;
+  gtp_tunnel_set_version;
+  gtp_tunnel_set_tid;
+  gtp_tunnel_get_ifidx;
+  gtp_tunnel_get_ms_ip4;
+  gtp_tunnel_get_sgsn_ip4;
+  gtp_tunnel_get_version;
+  gtp_tunnel_get_tid;
+
 local: *;
 };