VM: clear the local roots before garbage collection in general_error()

I've been investigating the gc weirdness in general_error:

    #ifdef FACTOR_DEBUG
        /* Doing a GC here triggers all kinds of funny errors */
        primitive_compact_gc();
    #endif

Seems like at least some of the errors are fixed by clearing the roots before gc. The vectors can contain invalid pointers which the slot_visitor trips on.