tbf: Refactor reuse_tbf into releasing and DL TBF establishment

Currently reuse_tbf (partly) resets the old DL TBF and uses its PACCH
to establish a new DL TBF. The method can not be used with UL TBFs.

This commit replaces the reuse_tbf method into a
gprs_rlcmac_dl_tbf:release method which triggers the TBF's timer
based deletion (so that the TFI is still reserved for some time) and
a gprs_rlcmac_tbf::establish_dl_tbf_on_pacch which can establish DL
TBFs on existing PACCHs of either DL or UL TBFs.

Sponsored-by: On-Waves ehf
diff --git a/src/tbf.h b/src/tbf.h
index b35ea78..3619910 100644
--- a/src/tbf.h
+++ b/src/tbf.h
@@ -137,6 +137,7 @@
 	void handle_timeout();
 	void stop_timer();
 	void stop_t3191();
+	int establish_dl_tbf_on_pacch();
 
 	void poll_timeout();
 
@@ -337,6 +338,7 @@
 	int frames_since_last_poll(unsigned fn) const;
 	int frames_since_last_drain(unsigned fn) const;
 	bool keep_open(unsigned fn) const;
+	int release();
 
 	bool is_control_ts(uint8_t ts) const {
 		return ts == control_ts;