reworked MNCC codebase

This is Harald's reworked MNCC base, slowly heading towards integration
into master.  The key changes are:
* provide much more structure to the data in gsm_mncc
* encode_* and decode_* functions now take a structure rather than tons
  of individual arguments (whose order nobody can remember)
* make sure we don't have copies of the same code everywhere by introducing
  mncc_set_cause() and mncc_release_ind()
* save horizontal screen space if possible
* make sure we break lines > 80 characters
diff --git a/openbsc/src/bsc_hack.c b/openbsc/src/bsc_hack.c
index 3888407..e41b0e3 100644
--- a/openbsc/src/bsc_hack.c
+++ b/openbsc/src/bsc_hack.c
@@ -995,7 +995,7 @@
 	}
 
 	/* initialize our data structures */
-	gsmnet = gsm_network_init(2, BTS_TYPE, MCC, MNC);
+	gsmnet = gsm_network_init(2, BTS_TYPE, MCC, MNC, mncc_recv);
 	if (!gsmnet)
 		return -ENOMEM;
 
@@ -1188,6 +1188,7 @@
 	signal(SIGABRT, &signal_handler);
 
 	while (1) {
+		bsc_upqueue(gsmnet);
 		bsc_select_main(0);
 	}
 }