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=

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

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