IntersectionObserver: use an idle callback to send notifications.

With this change, the tests can no longer use setTimeout(0) to wait
for notifications to be delivered.  Instead, use takeRecords() to
proactively grab notifications right after they are generated
(typically in a RAF right after a layout change).

BUG=540528
R=ojan@chromium.org,haraken@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#380278}
19 files changed