Structural reform: Get rid of osmo_bsc_sccp_con

There was always a 1:1 correspondence between gsm_subscriber_connection
and osmo_bsc_sccp_con, so there's really no point in having two separate
dynamically allocated data structures with pointers back and forth and
another linked list around.

Let's merge osmo_bsc_sccp_con into gsm_subscriber_connection for
simplicity.

The resulting code might not be elegant in places, but I've tried to
do only the most simple changes in this patch, while further
simplifications can be done in later subsequent patches.

As a side-effect, this patch also fixes lchan clearing if the MSC
(or the local SCCP provider) hard-disconnects the SCCP connection.

Change-Id: Idd2b733477ee90d24dec369755a00f1c39c93f39
diff --git a/tests/bsc/bsc_test.c b/tests/bsc/bsc_test.c
index 19bb608..9c35d2f 100644
--- a/tests/bsc/bsc_test.c
+++ b/tests/bsc/bsc_test.c
@@ -124,17 +124,14 @@
 
 	struct gsm_network *net = bsc_network_init(NULL, 1, 1);
 	struct gsm_bts *bts = gsm_bts_alloc(net, 0);
-	struct osmo_bsc_sccp_con *sccp_con;
 	struct bsc_msc_data *msc;
 	struct gsm_subscriber_connection *conn;
 
-	sccp_con = talloc_zero(net, struct osmo_bsc_sccp_con);
 	msc = talloc_zero(net, struct bsc_msc_data);
 	conn = talloc_zero(net, struct gsm_subscriber_connection);
 
 	bts->network = net;
-	sccp_con->msc = msc;
-	conn->sccp_con = sccp_con;
+	conn->sccp.msc = msc;
 	conn->lchan = &bts->c0->ts[1].lchan[0];
 
 	/* start testing with proper messages */