test: enforce correct pairing of subtest_end() calls

And abort if the function is called on an empty save_stack, giving an
informative diag() beforehand.
test: only call srunner_add_suite() after it's been initialized

Oops. This is what we get from insufficient testing: the main testbench
program never used the "non-NULL first suite" form.

Merge conflict was from cherry-picking out-of-order; the original series had
some talloc conversion bits & child tracking support in srunner_create().
These have no impact on this cset.

Conflicts:
	user/testbench/test.c
space: prevent null dereference in invariant check

Not quite sure if absence of a pdir entry for an UTCB page is an allowed
condition or not. Clearly it's being generated, and wasn't asserted against
before.
thread: clear space->redirector when the TID disappears

I.e. becomes deleted or renamed by ThreadControl. This replaces the "invalid
redirector" panic in ipc_send_half() with erroneous behaviour, which should be
tested against separately.
space: change ->redirector to a pointer and a bit in ->flags

Removes calls to thread_find() from both the redirection path of
ipc_send_half() and has_redir_chain().