fake_clib: add extern prototype for vfprintf()
account for TF_HALT & TS_STOPPED in ipc_{send,recv}_half(), post_exn_ok()

Just the asserts, though. A similar change happened in ipc_xfer_timeout()
which now merely carries forward the contracts of its two thread_ipc_fail()
calls.
test: distinguish join_status, exit_status in t_end_thread()

This solves the problem where segfaults' addresses would be indistinguishably
delivered in the wait() format (low 4 bits = 7) through join_thread(). Now
join_thread()'s result matches the spec of ThreadMgr::join_thread .