fsm: add flag to ensure osmo_fsm_inst_term() happens only once

To prevent re-entering osmo_fsm_inst_term() twice for the same osmo_fsm_inst,
add flag osmo_fsm_inst.proc.terminating. osmo_fsm_inst_term() sets this to
true, or exits if it already is true.

Update fsm_dealloc_test.err for illustration. It is not relevant for unit
testing yet, just showing the difference.

Change-Id: I0c02d76a86f90c49e0eae2f85db64704c96a7674
diff --git a/include/osmocom/core/fsm.h b/include/osmocom/core/fsm.h
index c40d7f3..07bcd12 100644
--- a/include/osmocom/core/fsm.h
+++ b/include/osmocom/core/fsm.h
@@ -114,6 +114,8 @@
 		struct llist_head children;
 		/*! \ref llist_head linked to parent->proc.children */
 		struct llist_head child;
+		/*! Indicator whether osmo_fsm_inst_term() was already invoked on this instance. */
+		bool terminating;
 	} proc;
 };