sigma0: remove use of AVL trees in sigma0.c

Seems to work just as well; testbench runs just fine.
sigma0: re-use statically allocated track-pages

These are the ones used for seed memory, in s_page[] of build_heap().
sigma0: remove dead_trk_list

It's no longer required because the AVL-backing malloc substitute will no
longer interfere with free_track_page().
sigma0: miscellaneous cleanups

Don't busy-wait in __assert_failure and abort; move find_page_by_range() and
free_page_range() up and remove their prototypes; remove references to AVL
trees from various comments.
sigma0: add data invariant checking

There's not much in this program, so simplicity of the checks follows. This'll
be much more useful once the userspace sigma0 tester appears; it should
activate the "cut existing fpage" path which so far hasn't been implemented.
sigma0: fix unused parameter in insert_track_page_helper()

Also make the build_heap() functional description better.
set correct access bits in I/O flexpages

It's ReadWriteOnly=0b0110, not NoAccess=0b0000.
test: self: verify that TSDs are retained over fork()

Following glibc pthreads' example rather than any formal spec. The test fails
as given.
testbench: pass caller's UserDefinedHandle to the child's thread

This way the TSDs are retained (as tested for by the preceding cset). Other
threads' TSDs are left dangling due to destructor-related uncertainty.