[subscriber] Update the current_bts field on imsi detach and LOC accept

When sending LOCATION UPDATING REQUEST Accept or when getting
a IMSI Detach update the gsm_bts of the gsm_subscriber.
diff --git a/include/openbsc/gsm_subscriber.h b/include/openbsc/gsm_subscriber.h
index e0c621b..170e523 100644
--- a/include/openbsc/gsm_subscriber.h
+++ b/include/openbsc/gsm_subscriber.h
@@ -23,6 +23,7 @@
 	/* for internal management */ 
 	int use_count;
 	struct llist_head entry;
+	struct gsm_bts *current_bts;
 };
 
 enum gsm_subscriber_field {
@@ -31,12 +32,17 @@
 	GSM_SUBSCRIBER_EXTENSION,
 };
 
+enum gsm_subscriber_update_reason {
+	GSM_SUBSCRIBER_UPDATE_ATTACHED,
+	GSM_SUBSCRIBER_UPDATE_DETACHED,
+};
+
 struct gsm_subscriber *subscr_get(struct gsm_subscriber *subscr);
 struct gsm_subscriber *subscr_put(struct gsm_subscriber *subscr);
 struct gsm_subscriber *subscr_get_by_tmsi(const char *tmsi);
 struct gsm_subscriber *subscr_get_by_imsi(const char *imsi);
 struct gsm_subscriber *subscr_get_by_extension(const char *ext);
-int subscr_update(struct gsm_subscriber *s, struct gsm_bts *bts);
+int subscr_update(struct gsm_subscriber *s, struct gsm_bts *bts, int reason);
 
 /* internal */
 struct gsm_subscriber *subscr_alloc(void);