rts/CheckUnload: Don't prepare to unload if we can't unload
Previously prepareUnloadCheck would move the objects list to
old_objects even when profiling (where we cannot unload). This caused
us to vacate the objects list during major GCs, losing track of loaded
objects. Fix this by ensuring that prepareUnloadCheck and
checkUnload both use the same short-cutting logic.