VM: move the stack scrubbing logic to call_frame_slot_visitor to avoid visiting the callstack twice

primitive_minor_gc() iterates the stack twice, first to scrub stack
locations, then to trace overinitialized ones and gc roots. By running
visit_callstack() before visit_stack_elements() you only need to do it
once.