Remove the obejct from the safe pointer list when we can't get the monitor block. This doesn't solve my bug, but it's wrong anyway.
Missing break in panic.c switch.
Well, that was a spectacularly stupid way to break the garbage collector...
Call the infuser task on the base library before building the vm.

The vm and base libraries depend on each other. Obviously base needs a lot of headers from vm, but vm also needs a number of constants define in base, for example to create Exception objects.
This circular dependency is ugly of course. Maybe we should merge the two later, but for now I'm just calling the "infuser" task in base before building vm. This lets the infuser create the necessary header files without trying to build the C code which would fail. This is all vm needs to build.
Force libraries to be built in the order they're specified in the config's build file.

It seems I've simply been lucky so far that the dependencies between libraries happen to match the alphabetical ordering. But that isn't the case anymore now that base depends on vm, so vm should be built before anything else.