USSD: Add support for internal USSD handlers

There are some requests that are best served inside the HLR, as it
has access to subscriber information such as MSISDN and IMSI.

This unfortunately required quite some restructuring of the USSD
related structures including the VTY syntax for adding routes.

The default config file has been updated to replicate the *#100#
built-in behavior of old OsmoNITB.

Closes: OS#2566
Change-Id: I1d09fab810a6bb9ab02904de72dbc9e8a414f9f9
diff --git a/tests/test_nodes.vty b/tests/test_nodes.vty
index 4badad5..58f5c61 100644
--- a/tests/test_nodes.vty
+++ b/tests/test_nodes.vty
@@ -72,6 +72,11 @@
   gsup
   euse NAME
   no euse NAME
+  ussd route prefix PREFIX internal (own-msisdn|own-imsi)
+  ussd route prefix PREFIX external EUSE
+  no ussd route prefix PREFIX
+  ussd default-route external EUSE
+  no ussd default-route
 
 OsmoHLR(config-hlr)# gsup
 OsmoHLR(config-hlr-gsup)# list
@@ -122,4 +127,5 @@
 hlr
  gsup
   bind ip 127.0.0.1
+ ussd route prefix *#100# internal own-msisdn
 end