Revert of Revert "Revert of [oilpan]: Change marking to do precise roots first and conservative second. (http… (patchset #2 of https://codereview.chromium.org/413133006/)

Reason for revert:
This breaks strongification of ephemerons when there are pointers on the stack. See:

https://codereview.chromium.org/461413002/

for details.


Original issue's description:
> Revert "Revert of [oilpan]: Change marking to do precise roots first and conservative second. (https://codereview.chromium.org/405403003/)"
> 
> This reverts commit 765af3a45b15c4e5f65810c8ed8e20d44da04034.
> 
> AFAICT the CrossThreadPointerToOrphanedPage test was a bit flaky in the sense that the compiler was free to reuse the slot where the stackPtrValue was located after the RELEASE_ASSERT. However the test assumed the stackPtrValue was on the stack (to mimic a rogue integer value finding a dead object) when doing the conservative GC further down.
> After my change to Heap::CollectGarbage it seemed the android compiler no longer kept the value around and hence the test started failing. I have now moved the RELEASE_ASSERT down to after the point where we do the conservative GC which makes the test pass on android again.
> 
> I uploaded the unfixed diff first and then a second diff (moved RELEASE_ASSERT) with the fix.
> 
> R=ager@chromium.org, erik.corry@gmail.com, haraken@chromium.org, oilpan-reviews@chromium.org, sigbjornf@opera.com, tkent@chromium.org, zerny@chromium.org
> BUG=
> 
> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=178845

NOTRY=true
NOTREECHECKS=true

Review URL: https://codereview.chromium.org/464253002

git-svn-id: svn://svn.chromium.org/blink/trunk@180160 bbb929c8-8fbe-4397-9dbb-9b2b20218538