Fix MS TO measurement representation

* set proper flag when saving MS Timing Offset
* use gsm_subscriber's IMSI or lchan's name if bsc_subscriber is unknown
* add comments with spec reference
* store/display MS Timing Offset instead of raw Timing Offset field from
  RSL
* Compute MS Timing Offset [-63; 192] from Timing Offset field [0; 255],
  adjust structure gsm_meas_rep with proper type to store it

Change-Id: I7e003d23a6edb714c5f17688fd6a8edac131161d
Related: OS#1574
diff --git a/openbsc/src/libmsc/smpp_openbsc.c b/openbsc/src/libmsc/smpp_openbsc.c
index 2703a24..1671a62 100644
--- a/openbsc/src/libmsc/smpp_openbsc.c
+++ b/openbsc/src/libmsc/smpp_openbsc.c
@@ -437,8 +437,8 @@
 		append_tlv_u8(req_tlv, TLVID_osmo_ta, mr->ms_l1.ta);
 		ms_dbm = ms_pwr_dbm(lchan->ts->trx->bts->band, mr->ms_l1.pwr);
 		append_tlv_u8(req_tlv, TLVID_osmo_ms_l1_txpwr, ms_dbm);
-	} else if (mr->flags & MEAS_REP_F_MS_TO)
-		append_tlv_u8(req_tlv, TLVID_osmo_ta, mr->ms_timing_offset);
+	} else if (mr->flags & MEAS_REP_F_MS_TO) /* Save Timing Offset field = MS Timing Offset + 63 */
+		append_tlv_u8(req_tlv, TLVID_osmo_ta, mr->ms_timing_offset + 63);
 
 	append_tlv_u16(req_tlv, TLVID_osmo_rxlev_ul,
 		       rxlev2dbm(ul_meas->full.rx_lev));