refactor heap check for incremental gc

Separate heap-set! and heap-check

Only heap-cont/check after object is
fully allocated, so that false error message
won't pop up on half way of allocation.