gtp: Refactor code to use gtp_freepdp(_teardown) APIs

* API gtp_freepdp was already there but was not really being used by
anyone currently, so we can change its behaviour to call cb_delete_ctx.
It makes sense to call the cb in there too to be consistent with rest of
APIs.
* Add API gtp_freepdp_teardown, which calls gtp_freepdp on pdp and its
secondary contexts. It will also be used later on by osmo-ggsn.
* Use new APIs in internal code to simplify it.

Change-Id: I9f0b774e9385a7a8d81ec9702f158e2f9a50d571
diff --git a/gtp/gtp.h b/gtp/gtp.h
index 5f35ab5..6582319 100644
--- a/gtp/gtp.h
+++ b/gtp/gtp.h
@@ -309,6 +309,7 @@
 extern int gtp_newpdp(struct gsn_t *gsn, struct pdp_t **pdp,
 		      uint64_t imsi, uint8_t nsapi);
 extern int gtp_freepdp(struct gsn_t *gsn, struct pdp_t *pdp);
+extern int gtp_freepdp_teardown(struct gsn_t *gsn, struct pdp_t *pdp);
 
 extern int gtp_create_context_req(struct gsn_t *gsn, struct pdp_t *pdp,
 				  void *cbp);