all: threads always exit safely, threadtime, timestep osd, xyz timestep

Finally got the threads to exit without forcing them to. Turns out recursive function calling is not reall reliable here. As a bonus, you can restart the threads to your heart's content and not get any memory holes. Also chose to abandon absolute time. Right now the threadtime osd will report the time for each thread in seconds. Don't trust it? Subtract a few objects from totcore in physics.c and see the last thread's CPU time skyrocket. Got a nice osd reporting the current timestep. And removed the dumpmode 2 option because we're no longer synchronized. Will probably implement that within the threads. Or not. Also will need to check if there's already a file with that timestep before dumping to save a bit.