tbf/bts, encoding: Keep track of WAIT_RELEASE state for DL assignment

The current code does not properly distinguish between DL assignments to
reuse a tbf (after it was put in state WAIT_RELEASE) and DL assignments
for an active tbf to change the allocation of the PDCH timeslots.

This patch introduces a new variable was_releasing which remembers if
trigger_dl_ass() was called with a tbf in state WAIT_RELEASE. In that
case we have to set the CONTROL_ACK field in the download assignment.

This should allow us to send DL assignments to change PDCH TS allocation
of a tbf before we enter FLOW state.
diff --git a/src/tbf.cpp b/src/tbf.cpp
index b20d0fc..dd1f0fb 100644
--- a/src/tbf.cpp
+++ b/src/tbf.cpp
@@ -1405,6 +1405,8 @@
 	/* report all outstanding packets as received */
 	gprs_rlcmac_received_lost(this, received, 0);
 
+	tbf_new_state(this, GPRS_RLCMAC_WAIT_RELEASE);
+
 	/* check for LLC PDU in the LLC Queue */
 	msg = llc_dequeue(gprs_bssgp_pcu_current_bctx());
 	if (!msg) {
@@ -1414,7 +1416,6 @@
 		tbf_timer_start(this, 3193,
 			bts_data()->t3193_msec / 1000,
 			(bts_data()->t3193_msec % 1000) * 1000);
-		tbf_new_state(this, GPRS_RLCMAC_WAIT_RELEASE);
 
 		return 0;
 	}