Correctly report test teardown errors

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Do more test initialization in the harness file

We have access to the test_info struct from the harness, so we can prep it
there.

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>
Rework test harness

We no longer need longjmp!!! Thanks to gcc's ability to store label locations
we can use regular goto to abort tests. The compiler handles this much better,
so a lot of ambiguity goes away.

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>