Run all suites inside a top-level `rootSuite`.

This top-level suite is ran at the `bed` destructor level, so it's able
to run all registered test suites, across modules' `unittest` statements
together. I've also changed the way a process using bed exits. It'll now
simply exit on errors, with `std.c.process.exit`. To be honest, I'm not
sure about how safe it's to call `exit` in the middle of the destructor
chain. I'd hope it continues to call other destructors, *while* exiting
with the provided code, but I can't tell for sure, since this is a C
function. We'll have to test this more extensively by hand, but I
wouldn't say it's so much of a problem, since `bed` is only a testing
framework, so running all the destructors correctly isn't something
that's *absolutely* required, per-se.