Oilpan: Fix threading races in HeapDoesNotContainCache::flush()

Currently HeapDoesNotContainCache::flush() is called when allocating a new page. Thus HeapDoesNotContainCache::flush() can be called by multiple threads and cause threading races.

This CL changes the logic as follows:

- When allocating a new page, just set a ThreadState::m_shouldFlushHeapDoesNotContainCache flag. This is a thread-safe operation.
- When a GC is triggered, flush the HeapDoesNotContainCache if the flag is set on any ThreadState.

That way we can avoid the threading race. Also we can avoid flushing HeapDoesNotContainCache at every page allocation.

BUG=420489
TEST=None. Manually confirmed that TSan passes with the test case in the bug. The test case is not minimized and thus not appropriate to be added to the CL.

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

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