[oilpan]: Fix crash due to ephemeron queued flag not being cleared.

When tracing an ephemeron we register a weak table callback to support tracing only those values where a weak key is still alive. We maintain a m_queueFlag to only queue the callback once. This flag used to be cleared during the per thread weak processing, but we cannot assume the per thread weak processing will execute before another GC is scheduled.
This can get us into the case where we incorrectly think the ephemeronIteration callback is queued when it actually has been executed and cleared out in the previous GC.
To avoid this I have added a new callback which is called during the weak pointer processing done before we exit collectGarbage and hence before any thread commences execution. This ensures that the flag is always cleared before a new marking phase.
I have also added an ASSERT detecting if we get into a state where the flag is set, but no callback is queued.

This should fix the crash in following tests:

callbacks-are-called-in-correct-context.html
worker-read-file-async.html
audits-empty-stylesheet.html
audits-panel-noimages-functional.html
heap-snapshot-loader.html

While debugging I also found one case where we didn't know the full type definition before calling into the ObjectAliveTrait in Visitor::isAlive, thanks for adding the same check that Ian added in weak member tracing.

R=ager@chromium.org, erik.corry@gmail.com, haraken@chromium.org, oilpan-reviews@chromium.org, tkent@chromium.org, vegorov@chromium.org, zerny@chromium.org
BUG=

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

git-svn-id: svn://svn.chromium.org/blink/trunk@176830 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Include Document.h in fewer headers

Since Document.h is included in so many different places this does not
amount to much recompilation savings (1165 -> 1155), but does put the
include where it belongs for future reduction patches.

R=haraken@chromium.org, jochen@chromium.org, morrita@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@176831 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Oilpan: Build fix after r176830

TBR=wibling@chromium.org

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

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