Organize gc.c a bit
- Move immutable fields from struct heaps_slot and struct sorted_heaps_slot into struct heaps_header. One exception is limit field, but it starts to be mutable just before freeing a heaps_header, so that it is not big issue.
- Embed bitmap into struct heaps_slot
free_unused_heap, so that it will not be called on every GC round, but only when page should be freed. While
free_unused_heapsdoes not consume much time (it is invisible in profiler), but regular application has no need in calling this function every time.