remove the minor GC introduced in clear_all_old(), and introduce prepare_major_gc()

1)

  ```
  if (is_major_gc(mrb)) {
    incremental_gc_until(mrb, GC_STATE_NONE);
  }
  ```

this snippet from `clear_all_old()` is in fact triggering a MINOR gc if it's `is_major_gc()`. is there any reason on this? 
 
2)  `clear_all_old()` is pretty precise on what it does, but `prepare_major_gc()` is more descriptive on what's its role