pdch: Move enable/disable into the PDCH code

When a PDCH is disabled all resources should be freed. This is
currently not possible as the PDCH does not know where it belongs
to. On top of that the list (and other resources) should be
properly initialized on construction so that disable() is idempotent
and does not check if it was disabled. During the re-factoring I
noticed that during a sysmobts re-start some resources are not
freed. I left a warning in the code to resolve this issue later.
diff --git a/src/bts.h b/src/bts.h
index 4babd25..8e88bc9 100644
--- a/src/bts.h
+++ b/src/bts.h
@@ -39,7 +39,17 @@
  * PDCH instance
  */
 struct gprs_rlcmac_pdch {
-	uint8_t enable; /* TS is enabled */
+#ifdef __cplusplus
+	/* TODO: the PDCH should know the trx/ts it belongs to */
+	void free_resources(uint8_t trx, uint8_t ts);
+
+	bool is_enabled() const;
+
+	void enable();
+	void disable();
+#endif
+
+	uint8_t m_is_enabled; /* TS is enabled */
 	uint8_t tsc; /* TSC of this slot */
 	uint8_t next_ul_tfi; /* next uplink TBF/TFI to schedule (0..31) */
 	uint8_t next_dl_tfi; /* next downlink TBF/TFI to schedule (0..31) */
@@ -135,4 +145,9 @@
 	struct gprs_rlcmac_bts *bts_main_data();
 #ifdef __cplusplus
 }
+
+inline bool gprs_rlcmac_pdch::is_enabled() const
+{
+	return m_is_enabled;
+}
 #endif