library: Ensure setverdict(fail) is followed by mtc.stop

This will prevent subsequent failures from overwriting the verdict so we
can easily see the root cause of the test failure.

Using testcase.stop instead for errors internal to our test
infrastructure to mark them as test errors instead of failed.

Change-Id: Idc6819aaf0b01e70c38fad828dd44dcec6bdd778
diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn
index 325f22e..3c035e9 100644
--- a/library/RSL_Emulation.ttcn
+++ b/library/RSL_Emulation.ttcn
@@ -90,11 +90,11 @@
 		}
 		[] RSL.receive {
 			setverdict(fail, "Unexpected RSL message on DCHAN");
-			self.stop;
+			mtc.stop;
 		}
 		[] T.timeout {
 			setverdict(fail, "Timeout waiting for RSL on DCHAN");
-			self.stop;
+			mtc.stop;
 		}
 	}
 	/* never reached */
@@ -361,7 +361,7 @@
 				cid := f_cid_by_ra_fn(ra, fn);
 				if (cid == -1) {
 					setverdict(fail, "IMM ASS for unknown DChan");
-					self.stop;
+					mtc.stop;
 				}
 				/* update client with trx_nr */
 				ConnectionTable[cid].trx_nr := f_trx_by_streamId(rx_rsl.streamId);
@@ -421,12 +421,13 @@
 				CLIENT_PT.send(rx_rsl.rsl) to ConnectionTable[cid].comp_ref;
 			} else {
 				setverdict(fail, "RSL for unknown Dchan");
+				mtc.stop;
 			}
 		}
 
 		[not dchan_suspended] IPA_PT.receive {
 			setverdict(fail, "Received unknown primitive from IPA");
-			self.stop;
+			mtc.stop;
 		}
 
 		[bts_role] CLIENT_PT.receive(RSLDC_ChanRqd:?) -> value chan_rqd sender vc_conn {