Store Compositor ReadyState per-pipeline

Instead of storing a single ReadyState, store one per pipeline and
track the earliest one.
Store one RenderState per-pipeline in the Compositor

This can later be used to decide whether the entire pipeline is ready
for rendering.
Create root compositor layers for all frames eagerly

Instead of waiting to create the root layer, create them as soon as the
Compositor receives the frame tree. This allows the compositor to
create a layer tree skeleton of which to hang the base layers when they
are ready.
Remove SetLayerClipRect and add SetLayerOrigin

The constallation has accurate information about iframe layer origins,
but not their size.
Don't produce image output until all pipelines rendered something

Instead of producing image output as soon as the first pipeline is
ready, we wait to produce the output until all pipelines are in the
idle RenderState. This should remove a race condition when running
reference tests.
Update and expand iframe tests

Add iframe tests to their own subdirectory and add another test case
that used to trigger a fatal error. The new test case uses the
"allow-scripts" sandbox attribute to work around a script task failure
caused by the child frame sharing the same script task as the parent.
Merge pull request #3197 from mrobinson/iframes

Better handling of iframes in the compositor tree