heap: Introduce not fully constructed state for objects during ctor

Use the MakeGarbageCollected bottleneck to flag objects as being under
construction while their constructor is executed.

can be recovered once we are done moving to MakeGarbagecollected by
opening the scope in the allocator (HoH ctor).

Binary-Size: Increase due to adding scope to constructors. Roughly 50%
Bug: 843903
Change-Id: I0a5182481534922ba14c6c12ed7138dadbcadea5
Reviewed-on: https://chromium-review.googlesource.com/c/1350128
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611659}
3 files changed