Introduce 'osmo_tlv_prot' abstraction for validation of TLV protocols

This extends our existing TLV parser with the ability to
* validate that mandatory IEs of a given message are present
* validate that all present IEs are of required minimum length

Introducing this generic layer will help us to reduce open-coded
imperative verification across virtually all the protocols we
implement, as well as add validation to those protocols where we
don't properly perform related input validation yet.

Change-Id: If1e1d9adfa141ca86001dbd62a6a339f9bf9a912
diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map
index f339120..bcded1c 100644
--- a/src/gsm/libosmogsm.map
+++ b/src/gsm/libosmogsm.map
@@ -580,6 +580,11 @@
 osmo_match_shift_tlv;
 osmo_shift_lv;
 
+osmo_tlv_prot_msg_name;
+osmo_tlv_prot_ie_name;
+osmo_tlv_prot_validate_tp;
+osmo_tlv_prot_parse;
+
 gan_msgt_vals;
 gan_pdisc_vals;